﻿2026-06-15T13:57:01.3467351Z ##[group]Run ./traceable-reqs check --json
2026-06-15T13:57:01.3467960Z [36;1m./traceable-reqs check --json[0m
2026-06-15T13:57:01.3480969Z shell: /usr/bin/bash -e {0}
2026-06-15T13:57:01.3481416Z ##[endgroup]
2026-06-15T13:57:01.3975534Z {
2026-06-15T13:57:01.3976379Z   "schemaVersion": 1,
2026-06-15T13:57:01.3977353Z   "summary": {
2026-06-15T13:57:01.3977978Z     "requirementCount": 212,
2026-06-15T13:57:01.3978697Z     "completeCount": 212,
2026-06-15T13:57:01.3979487Z     "incompleteCount": 0,
2026-06-15T13:57:01.3980160Z     "findingCount": 0
2026-06-15T13:57:01.3980775Z   },
2026-06-15T13:57:01.3981696Z   "requirements": [
2026-06-15T13:57:01.3982306Z     {
2026-06-15T13:57:01.3982908Z       "id": "REQ-API-1",
2026-06-15T13:57:01.3983786Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-15T13:57:01.3984769Z       "requiredStages": [
2026-06-15T13:57:01.3985431Z         "impl",
2026-06-15T13:57:01.3986037Z         "unit",
2026-06-15T13:57:01.3986623Z         "int"
2026-06-15T13:57:01.3987250Z       ],
2026-06-15T13:57:01.3987817Z       "stages": {
2026-06-15T13:57:01.3988413Z         "doc": {
2026-06-15T13:57:01.3989101Z           "complete": false,
2026-06-15T13:57:01.3989800Z           "evidence": []
2026-06-15T13:57:01.3990453Z         },
2026-06-15T13:57:01.3991025Z         "impl": {
2026-06-15T13:57:01.3991630Z           "complete": true,
2026-06-15T13:57:01.3992280Z           "evidence": [
2026-06-15T13:57:01.3992905Z             {
2026-06-15T13:57:01.3993534Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:57:01.3994346Z               "line": 15
2026-06-15T13:57:01.3994986Z             }
2026-06-15T13:57:01.3995578Z           ]
2026-06-15T13:57:01.3996164Z         },
2026-06-15T13:57:01.3996736Z         "int": {
2026-06-15T13:57:01.3997366Z           "complete": true,
2026-06-15T13:57:01.3998024Z           "evidence": [
2026-06-15T13:57:01.3998668Z             {
2026-06-15T13:57:01.3999404Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:57:01.4000226Z               "line": 13
2026-06-15T13:57:01.4000875Z             }
2026-06-15T13:57:01.4001447Z           ]
2026-06-15T13:57:01.4002006Z         },
2026-06-15T13:57:01.4002569Z         "unit": {
2026-06-15T13:57:01.4003174Z           "complete": true,
2026-06-15T13:57:01.4003837Z           "evidence": [
2026-06-15T13:57:01.4004462Z             {
2026-06-15T13:57:01.4005104Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:57:01.4005904Z               "line": 480
2026-06-15T13:57:01.4006532Z             },
2026-06-15T13:57:01.4007116Z             {
2026-06-15T13:57:01.4007762Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:57:01.4008570Z               "line": 518
2026-06-15T13:57:01.4009286Z             },
2026-06-15T13:57:01.4009891Z             {
2026-06-15T13:57:01.4010548Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:57:01.4011387Z               "line": 586
2026-06-15T13:57:01.4012055Z             }
2026-06-15T13:57:01.4012674Z           ]
2026-06-15T13:57:01.4013071Z         }
2026-06-15T13:57:01.4013568Z       }
2026-06-15T13:57:01.4013944Z     },
2026-06-15T13:57:01.4014521Z     {
2026-06-15T13:57:01.4015104Z       "id": "REQ-API-2",
2026-06-15T13:57:01.4016111Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-15T13:57:01.4017241Z       "requiredStages": [
2026-06-15T13:57:01.4017971Z         "impl",
2026-06-15T13:57:01.4018611Z         "unit",
2026-06-15T13:57:01.4019279Z         "int"
2026-06-15T13:57:01.4019870Z       ],
2026-06-15T13:57:01.4020322Z       "stages": {
2026-06-15T13:57:01.4020718Z         "doc": {
2026-06-15T13:57:01.4021108Z           "complete": false,
2026-06-15T13:57:01.4021538Z           "evidence": []
2026-06-15T13:57:01.4021938Z         },
2026-06-15T13:57:01.4022295Z         "impl": {
2026-06-15T13:57:01.4022696Z           "complete": true,
2026-06-15T13:57:01.4023116Z           "evidence": [
2026-06-15T13:57:01.4023509Z             {
2026-06-15T13:57:01.4024223Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T13:57:01.4024743Z               "line": 17
2026-06-15T13:57:01.4025139Z             },
2026-06-15T13:57:01.4025511Z             {
2026-06-15T13:57:01.4025926Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.4026433Z               "line": 20
2026-06-15T13:57:01.4026832Z             },
2026-06-15T13:57:01.4027185Z             {
2026-06-15T13:57:01.4027596Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.4028091Z               "line": 142
2026-06-15T13:57:01.4028635Z             },
2026-06-15T13:57:01.4029075Z             {
2026-06-15T13:57:01.4029501Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.4030004Z               "line": 24
2026-06-15T13:57:01.4030396Z             },
2026-06-15T13:57:01.4030745Z             {
2026-06-15T13:57:01.4031160Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.4031668Z               "line": 41
2026-06-15T13:57:01.4032070Z             },
2026-06-15T13:57:01.4032431Z             {
2026-06-15T13:57:01.4032836Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.4033334Z               "line": 209
2026-06-15T13:57:01.4033728Z             },
2026-06-15T13:57:01.4034073Z             {
2026-06-15T13:57:01.4034473Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.4034975Z               "line": 251
2026-06-15T13:57:01.4035379Z             },
2026-06-15T13:57:01.4035732Z             {
2026-06-15T13:57:01.4036167Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.4037035Z               "line": 330
2026-06-15T13:57:01.4037741Z             },
2026-06-15T13:57:01.4038346Z             {
2026-06-15T13:57:01.4039087Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:57:01.4039897Z               "line": 17
2026-06-15T13:57:01.4040555Z             },
2026-06-15T13:57:01.4041157Z             {
2026-06-15T13:57:01.4041833Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:57:01.4042639Z               "line": 30
2026-06-15T13:57:01.4043288Z             },
2026-06-15T13:57:01.4043889Z             {
2026-06-15T13:57:01.4044559Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:57:01.4045381Z               "line": 63
2026-06-15T13:57:01.4046054Z             },
2026-06-15T13:57:01.4046655Z             {
2026-06-15T13:57:01.4047330Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:57:01.4048163Z               "line": 77
2026-06-15T13:57:01.4048840Z             }
2026-06-15T13:57:01.4049493Z           ]
2026-06-15T13:57:01.4049921Z         },
2026-06-15T13:57:01.4050315Z         "int": {
2026-06-15T13:57:01.4050711Z           "complete": true,
2026-06-15T13:57:01.4051134Z           "evidence": [
2026-06-15T13:57:01.4051526Z             {
2026-06-15T13:57:01.4051941Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:57:01.4052447Z               "line": 14
2026-06-15T13:57:01.4052846Z             },
2026-06-15T13:57:01.4053204Z             {
2026-06-15T13:57:01.4053619Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:57:01.4054129Z               "line": 187
2026-06-15T13:57:01.4054529Z             }
2026-06-15T13:57:01.4054924Z           ]
2026-06-15T13:57:01.4055321Z         },
2026-06-15T13:57:01.4055937Z         "unit": {
2026-06-15T13:57:01.4056953Z           "complete": true,
2026-06-15T13:57:01.4057929Z           "evidence": [
2026-06-15T13:57:01.4058723Z             {
2026-06-15T13:57:01.4059310Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T13:57:01.4059869Z               "line": 82
2026-06-15T13:57:01.4060287Z             },
2026-06-15T13:57:01.4060651Z             {
2026-06-15T13:57:01.4061065Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.4061567Z               "line": 279
2026-06-15T13:57:01.4061962Z             },
2026-06-15T13:57:01.4062315Z             {
2026-06-15T13:57:01.4062987Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.4063488Z               "line": 585
2026-06-15T13:57:01.4063887Z             },
2026-06-15T13:57:01.4064244Z             {
2026-06-15T13:57:01.4064661Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.4065165Z               "line": 596
2026-06-15T13:57:01.4065560Z             },
2026-06-15T13:57:01.4065920Z             {
2026-06-15T13:57:01.4066336Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.4066840Z               "line": 749
2026-06-15T13:57:01.4067355Z             },
2026-06-15T13:57:01.4067718Z             {
2026-06-15T13:57:01.4068143Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.4068663Z               "line": 795
2026-06-15T13:57:01.4069131Z             },
2026-06-15T13:57:01.4069513Z             {
2026-06-15T13:57:01.4069927Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:57:01.4070424Z               "line": 143
2026-06-15T13:57:01.4070833Z             },
2026-06-15T13:57:01.4071178Z             {
2026-06-15T13:57:01.4071583Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:57:01.4072093Z               "line": 187
2026-06-15T13:57:01.4072494Z             }
2026-06-15T13:57:01.4072937Z           ]
2026-06-15T13:57:01.4073505Z         }
2026-06-15T13:57:01.4073967Z       }
2026-06-15T13:57:01.4074471Z     },
2026-06-15T13:57:01.4074916Z     {
2026-06-15T13:57:01.4075339Z       "id": "REQ-API-3",
2026-06-15T13:57:01.4076011Z       "title": "commune/signoff are file-drops, not commands",
2026-06-15T13:57:01.4076667Z       "requiredStages": [
2026-06-15T13:57:01.4077177Z         "impl",
2026-06-15T13:57:01.4077663Z         "unit",
2026-06-15T13:57:01.4078107Z         "int"
2026-06-15T13:57:01.4078640Z       ],
2026-06-15T13:57:01.4079130Z       "stages": {
2026-06-15T13:57:01.4079609Z         "doc": {
2026-06-15T13:57:01.4080187Z           "complete": false,
2026-06-15T13:57:01.4116903Z           "evidence": []
2026-06-15T13:57:01.4117447Z         },
2026-06-15T13:57:01.4117815Z         "impl": {
2026-06-15T13:57:01.4118200Z           "complete": true,
2026-06-15T13:57:01.4118611Z           "evidence": [
2026-06-15T13:57:01.4119059Z             {
2026-06-15T13:57:01.4119470Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:57:01.4119979Z               "line": 27
2026-06-15T13:57:01.4120367Z             },
2026-06-15T13:57:01.4120729Z             {
2026-06-15T13:57:01.4121147Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.4121669Z               "line": 442
2026-06-15T13:57:01.4122056Z             }
2026-06-15T13:57:01.4122409Z           ]
2026-06-15T13:57:01.4122766Z         },
2026-06-15T13:57:01.4123109Z         "int": {
2026-06-15T13:57:01.4123486Z           "complete": true,
2026-06-15T13:57:01.4123899Z           "evidence": [
2026-06-15T13:57:01.4124299Z             {
2026-06-15T13:57:01.4124708Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:57:01.4125223Z               "line": 261
2026-06-15T13:57:01.4125604Z             }
2026-06-15T13:57:01.4125972Z           ]
2026-06-15T13:57:01.4126320Z         },
2026-06-15T13:57:01.4126666Z         "unit": {
2026-06-15T13:57:01.4127043Z           "complete": true,
2026-06-15T13:57:01.4127459Z           "evidence": [
2026-06-15T13:57:01.4127839Z             {
2026-06-15T13:57:01.4128249Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:57:01.4128746Z               "line": 280
2026-06-15T13:57:01.4129200Z             },
2026-06-15T13:57:01.4129562Z             {
2026-06-15T13:57:01.4129988Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.4130535Z               "line": 824
2026-06-15T13:57:01.4130927Z             }
2026-06-15T13:57:01.4131271Z           ]
2026-06-15T13:57:01.4131618Z         }
2026-06-15T13:57:01.4131963Z       }
2026-06-15T13:57:01.4132302Z     },
2026-06-15T13:57:01.4132644Z     {
2026-06-15T13:57:01.4133001Z       "id": "REQ-ARCH-1",
2026-06-15T13:57:01.4133688Z       "title": "Many small acyclically-layered crates",
2026-06-15T13:57:01.4134204Z       "requiredStages": [
2026-06-15T13:57:01.4134605Z         "impl"
2026-06-15T13:57:01.4134953Z       ],
2026-06-15T13:57:01.4135296Z       "stages": {
2026-06-15T13:57:01.4135664Z         "doc": {
2026-06-15T13:57:01.4136027Z           "complete": false,
2026-06-15T13:57:01.4136450Z           "evidence": []
2026-06-15T13:57:01.4136851Z         },
2026-06-15T13:57:01.4137188Z         "impl": {
2026-06-15T13:57:01.4137555Z           "complete": true,
2026-06-15T13:57:01.4138123Z           "evidence": [
2026-06-15T13:57:01.4138509Z             {
2026-06-15T13:57:01.4138897Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-15T13:57:01.4139462Z               "line": 18
2026-06-15T13:57:01.4139861Z             },
2026-06-15T13:57:01.4140233Z             {
2026-06-15T13:57:01.4140638Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-15T13:57:01.4141129Z               "line": 12
2026-06-15T13:57:01.4141526Z             },
2026-06-15T13:57:01.4141882Z             {
2026-06-15T13:57:01.4142286Z               "path": "crates/spt-store/src/lib.rs",
2026-06-15T13:57:01.4142770Z               "line": 12
2026-06-15T13:57:01.4143152Z             }
2026-06-15T13:57:01.4143495Z           ]
2026-06-15T13:57:01.4143838Z         },
2026-06-15T13:57:01.4144181Z         "int": {
2026-06-15T13:57:01.4144544Z           "complete": false,
2026-06-15T13:57:01.4144963Z           "evidence": []
2026-06-15T13:57:01.4145347Z         },
2026-06-15T13:57:01.4145695Z         "unit": {
2026-06-15T13:57:01.4146062Z           "complete": false,
2026-06-15T13:57:01.4146467Z           "evidence": []
2026-06-15T13:57:01.4146853Z         }
2026-06-15T13:57:01.4147197Z       }
2026-06-15T13:57:01.4147536Z     },
2026-06-15T13:57:01.4147858Z     {
2026-06-15T13:57:01.4148193Z       "id": "REQ-ARCH-2",
2026-06-15T13:57:01.4148721Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-15T13:57:01.4149370Z       "requiredStages": [
2026-06-15T13:57:01.4149766Z         "impl"
2026-06-15T13:57:01.4150127Z       ],
2026-06-15T13:57:01.4150463Z       "stages": {
2026-06-15T13:57:01.4150826Z         "doc": {
2026-06-15T13:57:01.4151193Z           "complete": false,
2026-06-15T13:57:01.4151588Z           "evidence": []
2026-06-15T13:57:01.4151975Z         },
2026-06-15T13:57:01.4152324Z         "impl": {
2026-06-15T13:57:01.4152701Z           "complete": true,
2026-06-15T13:57:01.4153103Z           "evidence": [
2026-06-15T13:57:01.4153478Z             {
2026-06-15T13:57:01.4153888Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-15T13:57:01.4154379Z               "line": 18
2026-06-15T13:57:01.4154756Z             }
2026-06-15T13:57:01.4155095Z           ]
2026-06-15T13:57:01.4155432Z         },
2026-06-15T13:57:01.4155778Z         "int": {
2026-06-15T13:57:01.4156150Z           "complete": false,
2026-06-15T13:57:01.4156561Z           "evidence": []
2026-06-15T13:57:01.4156946Z         },
2026-06-15T13:57:01.4157285Z         "unit": {
2026-06-15T13:57:01.4157652Z           "complete": false,
2026-06-15T13:57:01.4158068Z           "evidence": []
2026-06-15T13:57:01.4158457Z         }
2026-06-15T13:57:01.4158786Z       }
2026-06-15T13:57:01.4159191Z     },
2026-06-15T13:57:01.4159525Z     {
2026-06-15T13:57:01.4159863Z       "id": "REQ-ARCH-3",
2026-06-15T13:57:01.4160464Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-15T13:57:01.4161110Z       "requiredStages": [
2026-06-15T13:57:01.4161500Z         "impl",
2026-06-15T13:57:01.4161876Z         "unit"
2026-06-15T13:57:01.4162220Z       ],
2026-06-15T13:57:01.4162559Z       "stages": {
2026-06-15T13:57:01.4162922Z         "doc": {
2026-06-15T13:57:01.4163290Z           "complete": false,
2026-06-15T13:57:01.4163686Z           "evidence": []
2026-06-15T13:57:01.4164071Z         },
2026-06-15T13:57:01.4164414Z         "impl": {
2026-06-15T13:57:01.4164773Z           "complete": true,
2026-06-15T13:57:01.4165311Z           "evidence": [
2026-06-15T13:57:01.4165688Z             {
2026-06-15T13:57:01.4166111Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T13:57:01.4166619Z               "line": 34
2026-06-15T13:57:01.4167005Z             },
2026-06-15T13:57:01.4167349Z             {
2026-06-15T13:57:01.4167751Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T13:57:01.4168240Z               "line": 41
2026-06-15T13:57:01.4168613Z             }
2026-06-15T13:57:01.4169017Z           ]
2026-06-15T13:57:01.4169351Z         },
2026-06-15T13:57:01.4169813Z         "int": {
2026-06-15T13:57:01.4170180Z           "complete": false,
2026-06-15T13:57:01.4170592Z           "evidence": []
2026-06-15T13:57:01.4170986Z         },
2026-06-15T13:57:01.4171327Z         "unit": {
2026-06-15T13:57:01.4171703Z           "complete": true,
2026-06-15T13:57:01.4172107Z           "evidence": [
2026-06-15T13:57:01.4172485Z             {
2026-06-15T13:57:01.4172891Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T13:57:01.4173385Z               "line": 51
2026-06-15T13:57:01.4173759Z             },
2026-06-15T13:57:01.4174100Z             {
2026-06-15T13:57:01.4174509Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T13:57:01.4174994Z               "line": 71
2026-06-15T13:57:01.4175371Z             },
2026-06-15T13:57:01.4175729Z             {
2026-06-15T13:57:01.4176125Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T13:57:01.4176623Z               "line": 83
2026-06-15T13:57:01.4177003Z             }
2026-06-15T13:57:01.4177362Z           ]
2026-06-15T13:57:01.4177709Z         }
2026-06-15T13:57:01.4178052Z       }
2026-06-15T13:57:01.4178376Z     },
2026-06-15T13:57:01.4178705Z     {
2026-06-15T13:57:01.4179115Z       "id": "REQ-ARCH-4",
2026-06-15T13:57:01.4179645Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-15T13:57:01.4180259Z       "requiredStages": [
2026-06-15T13:57:01.4180660Z         "impl",
2026-06-15T13:57:01.4181021Z         "unit"
2026-06-15T13:57:01.4181384Z       ],
2026-06-15T13:57:01.4181726Z       "stages": {
2026-06-15T13:57:01.4182072Z         "doc": {
2026-06-15T13:57:01.4182444Z           "complete": false,
2026-06-15T13:57:01.4182864Z           "evidence": []
2026-06-15T13:57:01.4183240Z         },
2026-06-15T13:57:01.4183584Z         "impl": {
2026-06-15T13:57:01.4183951Z           "complete": true,
2026-06-15T13:57:01.4184358Z           "evidence": [
2026-06-15T13:57:01.4184741Z             {
2026-06-15T13:57:01.4185144Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.4185646Z               "line": 157
2026-06-15T13:57:01.4186041Z             },
2026-06-15T13:57:01.4186389Z             {
2026-06-15T13:57:01.4186785Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.4187270Z               "line": 180
2026-06-15T13:57:01.4187660Z             },
2026-06-15T13:57:01.4188012Z             {
2026-06-15T13:57:01.4188411Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.4188890Z               "line": 200
2026-06-15T13:57:01.4189342Z             },
2026-06-15T13:57:01.4189690Z             {
2026-06-15T13:57:01.4190080Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.4190600Z               "line": 215
2026-06-15T13:57:01.4190976Z             },
2026-06-15T13:57:01.4191329Z             {
2026-06-15T13:57:01.4191731Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.4192210Z               "line": 265
2026-06-15T13:57:01.4192608Z             }
2026-06-15T13:57:01.4192952Z           ]
2026-06-15T13:57:01.4193291Z         },
2026-06-15T13:57:01.4193635Z         "int": {
2026-06-15T13:57:01.4193992Z           "complete": false,
2026-06-15T13:57:01.4194415Z           "evidence": []
2026-06-15T13:57:01.4194807Z         },
2026-06-15T13:57:01.4195143Z         "unit": {
2026-06-15T13:57:01.4195523Z           "complete": true,
2026-06-15T13:57:01.4196540Z           "evidence": [
2026-06-15T13:57:01.4196921Z             {
2026-06-15T13:57:01.4197320Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.4197802Z               "line": 326
2026-06-15T13:57:01.4198196Z             },
2026-06-15T13:57:01.4198543Z             {
2026-06-15T13:57:01.4199010Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.4199511Z               "line": 336
2026-06-15T13:57:01.4199902Z             },
2026-06-15T13:57:01.4200250Z             {
2026-06-15T13:57:01.4200654Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.4201403Z               "line": 347
2026-06-15T13:57:01.4201799Z             },
2026-06-15T13:57:01.4202151Z             {
2026-06-15T13:57:01.4202552Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.4203031Z               "line": 358
2026-06-15T13:57:01.4203426Z             },
2026-06-15T13:57:01.4203779Z             {
2026-06-15T13:57:01.4204166Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.4204662Z               "line": 370
2026-06-15T13:57:01.4205052Z             },
2026-06-15T13:57:01.4205405Z             {
2026-06-15T13:57:01.4205804Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.4206293Z               "line": 383
2026-06-15T13:57:01.4206679Z             },
2026-06-15T13:57:01.4207028Z             {
2026-06-15T13:57:01.4207424Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.4207905Z               "line": 394
2026-06-15T13:57:01.4208285Z             },
2026-06-15T13:57:01.4208636Z             {
2026-06-15T13:57:01.4209089Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.4209565Z               "line": 411
2026-06-15T13:57:01.4209948Z             },
2026-06-15T13:57:01.4210305Z             {
2026-06-15T13:57:01.4210686Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.4211185Z               "line": 539
2026-06-15T13:57:01.4211568Z             }
2026-06-15T13:57:01.4211916Z           ]
2026-06-15T13:57:01.4212254Z         }
2026-06-15T13:57:01.4212589Z       }
2026-06-15T13:57:01.4212922Z     },
2026-06-15T13:57:01.4213251Z     {
2026-06-15T13:57:01.4213596Z       "id": "REQ-CLI-1",
2026-06-15T13:57:01.4215699Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-15T13:57:01.4217811Z       "requiredStages": [
2026-06-15T13:57:01.4218207Z         "impl",
2026-06-15T13:57:01.4218571Z         "unit"
2026-06-15T13:57:01.4218917Z       ],
2026-06-15T13:57:01.4219326Z       "stages": {
2026-06-15T13:57:01.4219692Z         "doc": {
2026-06-15T13:57:01.4220068Z           "complete": false,
2026-06-15T13:57:01.4220523Z           "evidence": []
2026-06-15T13:57:01.4220922Z         },
2026-06-15T13:57:01.4221260Z         "impl": {
2026-06-15T13:57:01.4221632Z           "complete": true,
2026-06-15T13:57:01.4222031Z           "evidence": [
2026-06-15T13:57:01.4222414Z             {
2026-06-15T13:57:01.4236209Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4236776Z               "line": 225
2026-06-15T13:57:01.4237182Z             },
2026-06-15T13:57:01.4237532Z             {
2026-06-15T13:57:01.4237917Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4238423Z               "line": 990
2026-06-15T13:57:01.4238814Z             },
2026-06-15T13:57:01.4239227Z             {
2026-06-15T13:57:01.4239614Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4240099Z               "line": 1518
2026-06-15T13:57:01.4240507Z             },
2026-06-15T13:57:01.4240864Z             {
2026-06-15T13:57:01.4241246Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4241904Z               "line": 2725
2026-06-15T13:57:01.4242306Z             }
2026-06-15T13:57:01.4242654Z           ]
2026-06-15T13:57:01.4243001Z         },
2026-06-15T13:57:01.4243344Z         "int": {
2026-06-15T13:57:01.4243715Z           "complete": false,
2026-06-15T13:57:01.4244134Z           "evidence": []
2026-06-15T13:57:01.4244508Z         },
2026-06-15T13:57:01.4244856Z         "unit": {
2026-06-15T13:57:01.4245220Z           "complete": true,
2026-06-15T13:57:01.4245624Z           "evidence": [
2026-06-15T13:57:01.4246000Z             {
2026-06-15T13:57:01.4246530Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4247006Z               "line": 6514
2026-06-15T13:57:01.4247399Z             }
2026-06-15T13:57:01.4247742Z           ]
2026-06-15T13:57:01.4248073Z         }
2026-06-15T13:57:01.4248396Z       }
2026-06-15T13:57:01.4248730Z     },
2026-06-15T13:57:01.4249140Z     {
2026-06-15T13:57:01.4249488Z       "id": "REQ-CLI-2",
2026-06-15T13:57:01.4250919Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-15T13:57:01.4252378Z       "requiredStages": [
2026-06-15T13:57:01.4252784Z         "impl",
2026-06-15T13:57:01.4253143Z         "unit"
2026-06-15T13:57:01.4253484Z       ],
2026-06-15T13:57:01.4253818Z       "stages": {
2026-06-15T13:57:01.4254171Z         "doc": {
2026-06-15T13:57:01.4254552Z           "complete": false,
2026-06-15T13:57:01.4254971Z           "evidence": []
2026-06-15T13:57:01.4255353Z         },
2026-06-15T13:57:01.4255695Z         "impl": {
2026-06-15T13:57:01.4256074Z           "complete": true,
2026-06-15T13:57:01.4256480Z           "evidence": [
2026-06-15T13:57:01.4256870Z             {
2026-06-15T13:57:01.4257276Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.4257776Z               "line": 345
2026-06-15T13:57:01.4258187Z             },
2026-06-15T13:57:01.4258528Z             {
2026-06-15T13:57:01.4259018Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T13:57:01.4259523Z               "line": 78
2026-06-15T13:57:01.4259915Z             },
2026-06-15T13:57:01.4260263Z             {
2026-06-15T13:57:01.4260686Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T13:57:01.4261186Z               "line": 239
2026-06-15T13:57:01.4261571Z             },
2026-06-15T13:57:01.4261924Z             {
2026-06-15T13:57:01.4262318Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4262792Z               "line": 419
2026-06-15T13:57:01.4263182Z             },
2026-06-15T13:57:01.4263529Z             {
2026-06-15T13:57:01.4263910Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4264383Z               "line": 1073
2026-06-15T13:57:01.4264759Z             },
2026-06-15T13:57:01.4274372Z             {
2026-06-15T13:57:01.4274832Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4275319Z               "line": 1713
2026-06-15T13:57:01.4275720Z             },
2026-06-15T13:57:01.4276077Z             {
2026-06-15T13:57:01.4276459Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4276924Z               "line": 1792
2026-06-15T13:57:01.4277318Z             },
2026-06-15T13:57:01.4277676Z             {
2026-06-15T13:57:01.4278057Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4278529Z               "line": 1853
2026-06-15T13:57:01.4278930Z             }
2026-06-15T13:57:01.4279644Z           ]
2026-06-15T13:57:01.4279975Z         },
2026-06-15T13:57:01.4280329Z         "int": {
2026-06-15T13:57:01.4280702Z           "complete": false,
2026-06-15T13:57:01.4281120Z           "evidence": []
2026-06-15T13:57:01.4281516Z         },
2026-06-15T13:57:01.4281869Z         "unit": {
2026-06-15T13:57:01.4282244Z           "complete": true,
2026-06-15T13:57:01.4282828Z           "evidence": [
2026-06-15T13:57:01.4283210Z             {
2026-06-15T13:57:01.4283630Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T13:57:01.4284145Z               "line": 309
2026-06-15T13:57:01.4284541Z             },
2026-06-15T13:57:01.4284899Z             {
2026-06-15T13:57:01.4285293Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4285775Z               "line": 6652
2026-06-15T13:57:01.4286185Z             }
2026-06-15T13:57:01.4286524Z           ]
2026-06-15T13:57:01.4286867Z         }
2026-06-15T13:57:01.4287200Z       }
2026-06-15T13:57:01.4287668Z     },
2026-06-15T13:57:01.4288012Z     {
2026-06-15T13:57:01.4288366Z       "id": "REQ-CLI-3",
2026-06-15T13:57:01.4289930Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-15T13:57:01.4291441Z       "requiredStages": [
2026-06-15T13:57:01.4291848Z         "impl",
2026-06-15T13:57:01.4292211Z         "unit"
2026-06-15T13:57:01.4292564Z       ],
2026-06-15T13:57:01.4292899Z       "stages": {
2026-06-15T13:57:01.4293270Z         "doc": {
2026-06-15T13:57:01.4293641Z           "complete": false,
2026-06-15T13:57:01.4294071Z           "evidence": []
2026-06-15T13:57:01.4294467Z         },
2026-06-15T13:57:01.4294810Z         "impl": {
2026-06-15T13:57:01.4295191Z           "complete": true,
2026-06-15T13:57:01.4295605Z           "evidence": [
2026-06-15T13:57:01.4295996Z             {
2026-06-15T13:57:01.4296383Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4296854Z               "line": 984
2026-06-15T13:57:01.4297240Z             }
2026-06-15T13:57:01.4297584Z           ]
2026-06-15T13:57:01.4297926Z         },
2026-06-15T13:57:01.4298272Z         "int": {
2026-06-15T13:57:01.4298650Z           "complete": false,
2026-06-15T13:57:01.4299149Z           "evidence": []
2026-06-15T13:57:01.4299536Z         },
2026-06-15T13:57:01.4299880Z         "unit": {
2026-06-15T13:57:01.4300257Z           "complete": true,
2026-06-15T13:57:01.4300660Z           "evidence": [
2026-06-15T13:57:01.4301034Z             {
2026-06-15T13:57:01.4301415Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4301888Z               "line": 6479
2026-06-15T13:57:01.4302288Z             }
2026-06-15T13:57:01.4302631Z           ]
2026-06-15T13:57:01.4302970Z         }
2026-06-15T13:57:01.4303307Z       }
2026-06-15T13:57:01.4303638Z     },
2026-06-15T13:57:01.4303977Z     {
2026-06-15T13:57:01.4304326Z       "id": "REQ-CONSENT-1",
2026-06-15T13:57:01.4306132Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-15T13:57:01.4307963Z       "requiredStages": [
2026-06-15T13:57:01.4308363Z         "impl",
2026-06-15T13:57:01.4308722Z         "unit"
2026-06-15T13:57:01.4309147Z       ],
2026-06-15T13:57:01.4309495Z       "stages": {
2026-06-15T13:57:01.4309858Z         "doc": {
2026-06-15T13:57:01.4310234Z           "complete": false,
2026-06-15T13:57:01.4310648Z           "evidence": []
2026-06-15T13:57:01.4311036Z         },
2026-06-15T13:57:01.4311382Z         "impl": {
2026-06-15T13:57:01.4311757Z           "complete": true,
2026-06-15T13:57:01.4312172Z           "evidence": [
2026-06-15T13:57:01.4312552Z             {
2026-06-15T13:57:01.4312963Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:57:01.4313472Z               "line": 27
2026-06-15T13:57:01.4313868Z             },
2026-06-15T13:57:01.4314213Z             {
2026-06-15T13:57:01.4314615Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:57:01.4315104Z               "line": 75
2026-06-15T13:57:01.4315630Z             },
2026-06-15T13:57:01.4315987Z             {
2026-06-15T13:57:01.4316397Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:57:01.4316893Z               "line": 98
2026-06-15T13:57:01.4317279Z             },
2026-06-15T13:57:01.4317631Z             {
2026-06-15T13:57:01.4318032Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T13:57:01.4318514Z               "line": 82
2026-06-15T13:57:01.4318894Z             },
2026-06-15T13:57:01.4319320Z             {
2026-06-15T13:57:01.4319712Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T13:57:01.4320337Z               "line": 109
2026-06-15T13:57:01.4320723Z             },
2026-06-15T13:57:01.4321076Z             {
2026-06-15T13:57:01.4321471Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T13:57:01.4321966Z               "line": 127
2026-06-15T13:57:01.4322351Z             },
2026-06-15T13:57:01.4322693Z             {
2026-06-15T13:57:01.4323094Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T13:57:01.4323576Z               "line": 142
2026-06-15T13:57:01.4323967Z             },
2026-06-15T13:57:01.4324342Z             {
2026-06-15T13:57:01.4324735Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4325204Z               "line": 6066
2026-06-15T13:57:01.4325599Z             }
2026-06-15T13:57:01.4325947Z           ]
2026-06-15T13:57:01.4326290Z         },
2026-06-15T13:57:01.4326623Z         "int": {
2026-06-15T13:57:01.4327001Z           "complete": false,
2026-06-15T13:57:01.4327448Z           "evidence": []
2026-06-15T13:57:01.4327872Z         },
2026-06-15T13:57:01.4328224Z         "unit": {
2026-06-15T13:57:01.4328606Z           "complete": true,
2026-06-15T13:57:01.4329069Z           "evidence": [
2026-06-15T13:57:01.4329459Z             {
2026-06-15T13:57:01.4329861Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:57:01.4330363Z               "line": 334
2026-06-15T13:57:01.4330762Z             },
2026-06-15T13:57:01.4331125Z             {
2026-06-15T13:57:01.4331526Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:57:01.4332026Z               "line": 380
2026-06-15T13:57:01.4332425Z             },
2026-06-15T13:57:01.4332766Z             {
2026-06-15T13:57:01.4333173Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:57:01.4333678Z               "line": 391
2026-06-15T13:57:01.4334069Z             },
2026-06-15T13:57:01.4334428Z             {
2026-06-15T13:57:01.4334837Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T13:57:01.4335338Z               "line": 165
2026-06-15T13:57:01.4335730Z             },
2026-06-15T13:57:01.4336083Z             {
2026-06-15T13:57:01.4336492Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T13:57:01.4336980Z               "line": 184
2026-06-15T13:57:01.4337380Z             },
2026-06-15T13:57:01.4337737Z             {
2026-06-15T13:57:01.4338145Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T13:57:01.4338648Z               "line": 204
2026-06-15T13:57:01.4339095Z             },
2026-06-15T13:57:01.4339438Z             {
2026-06-15T13:57:01.4339824Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4340303Z               "line": 6832
2026-06-15T13:57:01.4340698Z             }
2026-06-15T13:57:01.4341041Z           ]
2026-06-15T13:57:01.4341385Z         }
2026-06-15T13:57:01.4341728Z       }
2026-06-15T13:57:01.4342062Z     },
2026-06-15T13:57:01.4342397Z     {
2026-06-15T13:57:01.4342745Z       "id": "REQ-CONSENT-2",
2026-06-15T13:57:01.4344434Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-15T13:57:01.4346151Z       "requiredStages": [
2026-06-15T13:57:01.4346691Z         "impl",
2026-06-15T13:57:01.4347057Z         "unit"
2026-06-15T13:57:01.4347425Z       ],
2026-06-15T13:57:01.4347763Z       "stages": {
2026-06-15T13:57:01.4348116Z         "doc": {
2026-06-15T13:57:01.4348501Z           "complete": false,
2026-06-15T13:57:01.4348921Z           "evidence": []
2026-06-15T13:57:01.4349383Z         },
2026-06-15T13:57:01.4349726Z         "impl": {
2026-06-15T13:57:01.4350109Z           "complete": true,
2026-06-15T13:57:01.4350528Z           "evidence": [
2026-06-15T13:57:01.4350901Z             {
2026-06-15T13:57:01.4351301Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:57:01.4351930Z               "line": 140
2026-06-15T13:57:01.4352332Z             },
2026-06-15T13:57:01.4352690Z             {
2026-06-15T13:57:01.4353090Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:57:01.4353604Z               "line": 165
2026-06-15T13:57:01.4353997Z             },
2026-06-15T13:57:01.4354355Z             {
2026-06-15T13:57:01.4354760Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:57:01.4355266Z               "line": 199
2026-06-15T13:57:01.4355661Z             },
2026-06-15T13:57:01.4356018Z             {
2026-06-15T13:57:01.4356420Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:57:01.4356922Z               "line": 241
2026-06-15T13:57:01.4357308Z             },
2026-06-15T13:57:01.4357665Z             {
2026-06-15T13:57:01.4358066Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:57:01.4358556Z               "line": 269
2026-06-15T13:57:01.4359042Z             },
2026-06-15T13:57:01.4359405Z             {
2026-06-15T13:57:01.4359819Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:57:01.4360315Z               "line": 300
2026-06-15T13:57:01.4360707Z             },
2026-06-15T13:57:01.4361065Z             {
2026-06-15T13:57:01.4361452Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4361928Z               "line": 5857
2026-06-15T13:57:01.4362339Z             },
2026-06-15T13:57:01.4362691Z             {
2026-06-15T13:57:01.4363073Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4363541Z               "line": 5915
2026-06-15T13:57:01.4363933Z             }
2026-06-15T13:57:01.4364287Z           ]
2026-06-15T13:57:01.4364634Z         },
2026-06-15T13:57:01.4364982Z         "int": {
2026-06-15T13:57:01.4365362Z           "complete": false,
2026-06-15T13:57:01.4365788Z           "evidence": []
2026-06-15T13:57:01.4366179Z         },
2026-06-15T13:57:01.4366517Z         "unit": {
2026-06-15T13:57:01.4366895Z           "complete": true,
2026-06-15T13:57:01.4367304Z           "evidence": [
2026-06-15T13:57:01.4367696Z             {
2026-06-15T13:57:01.4368092Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:57:01.4368597Z               "line": 419
2026-06-15T13:57:01.4369121Z             },
2026-06-15T13:57:01.4369483Z             {
2026-06-15T13:57:01.4369883Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:57:01.4370385Z               "line": 436
2026-06-15T13:57:01.4370771Z             },
2026-06-15T13:57:01.4371119Z             {
2026-06-15T13:57:01.4371524Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:57:01.4372022Z               "line": 472
2026-06-15T13:57:01.4372407Z             },
2026-06-15T13:57:01.4372765Z             {
2026-06-15T13:57:01.4373157Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:57:01.4373652Z               "line": 516
2026-06-15T13:57:01.4374028Z             },
2026-06-15T13:57:01.4374392Z             {
2026-06-15T13:57:01.4374762Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4375232Z               "line": 8028
2026-06-15T13:57:01.4375627Z             },
2026-06-15T13:57:01.4375971Z             {
2026-06-15T13:57:01.4376363Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4376838Z               "line": 8110
2026-06-15T13:57:01.4377390Z             }
2026-06-15T13:57:01.4377747Z           ]
2026-06-15T13:57:01.4378080Z         }
2026-06-15T13:57:01.4378418Z       }
2026-06-15T13:57:01.4378752Z     },
2026-06-15T13:57:01.4379166Z     {
2026-06-15T13:57:01.4379525Z       "id": "REQ-CONSENT-3",
2026-06-15T13:57:01.4382986Z       "title": "Per-capability approval gates (class-keyed): the require_approval enum may ride INDIVIDUAL [shell.capabilities] entries — gating the dangerous ACT, not just the spawn — with an optional class_key scoping the grant qualifier finer than the capability id ((owner endpoint x device class x node); a remembered HID-class attach grant never authorizes a storage-class attach). Reuses the grant store + interactive escalation + tighten-only floor (REQ-CONSENT-1/2 plumbing). Spawn gates govern EXISTENCE; capability gates govern ACTS — an explicitly distinct invariant (CONTEXT:283, ratified 2026-06-11 Gateway grill).",
2026-06-15T13:57:01.4386168Z       "requiredStages": [
2026-06-15T13:57:01.4386574Z         "doc",
2026-06-15T13:57:01.4386942Z         "impl",
2026-06-15T13:57:01.4387295Z         "unit",
2026-06-15T13:57:01.4387652Z         "int"
2026-06-15T13:57:01.4388015Z       ],
2026-06-15T13:57:01.4388354Z       "stages": {
2026-06-15T13:57:01.4388725Z         "doc": {
2026-06-15T13:57:01.4389170Z           "complete": true,
2026-06-15T13:57:01.4389574Z           "evidence": [
2026-06-15T13:57:01.4389961Z             {
2026-06-15T13:57:01.4390333Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.4390766Z               "line": 284
2026-06-15T13:57:01.4391148Z             }
2026-06-15T13:57:01.4391500Z           ]
2026-06-15T13:57:01.4391843Z         },
2026-06-15T13:57:01.4392191Z         "impl": {
2026-06-15T13:57:01.4392563Z           "complete": true,
2026-06-15T13:57:01.4392962Z           "evidence": [
2026-06-15T13:57:01.4393342Z             {
2026-06-15T13:57:01.4393752Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:57:01.4394258Z               "line": 123
2026-06-15T13:57:01.4394649Z             },
2026-06-15T13:57:01.4394997Z             {
2026-06-15T13:57:01.4395392Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:57:01.4395901Z               "line": 162
2026-06-15T13:57:01.4396281Z             },
2026-06-15T13:57:01.4396644Z             {
2026-06-15T13:57:01.4397047Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:57:01.4397554Z               "line": 239
2026-06-15T13:57:01.4397934Z             },
2026-06-15T13:57:01.4398287Z             {
2026-06-15T13:57:01.4398708Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.4399285Z               "line": 491
2026-06-15T13:57:01.4399682Z             },
2026-06-15T13:57:01.4400040Z             {
2026-06-15T13:57:01.4400450Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.4400951Z               "line": 699
2026-06-15T13:57:01.4401345Z             },
2026-06-15T13:57:01.4401703Z             {
2026-06-15T13:57:01.4402085Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4402571Z               "line": 5983
2026-06-15T13:57:01.4402953Z             }
2026-06-15T13:57:01.4403296Z           ]
2026-06-15T13:57:01.4403646Z         },
2026-06-15T13:57:01.4403984Z         "int": {
2026-06-15T13:57:01.4404355Z           "complete": true,
2026-06-15T13:57:01.4404769Z           "evidence": [
2026-06-15T13:57:01.4405147Z             {
2026-06-15T13:57:01.4405566Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-15T13:57:01.4406086Z               "line": 16
2026-06-15T13:57:01.4406466Z             }
2026-06-15T13:57:01.4406832Z           ]
2026-06-15T13:57:01.4407170Z         },
2026-06-15T13:57:01.4407513Z         "unit": {
2026-06-15T13:57:01.4407890Z           "complete": true,
2026-06-15T13:57:01.4408300Z           "evidence": [
2026-06-15T13:57:01.4408683Z             {
2026-06-15T13:57:01.4409240Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:57:01.4409736Z               "line": 624
2026-06-15T13:57:01.4410252Z             },
2026-06-15T13:57:01.4410615Z             {
2026-06-15T13:57:01.4411019Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:57:01.4411526Z               "line": 671
2026-06-15T13:57:01.4411915Z             },
2026-06-15T13:57:01.4412263Z             {
2026-06-15T13:57:01.4412673Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.4413179Z               "line": 1016
2026-06-15T13:57:01.4413583Z             }
2026-06-15T13:57:01.4413950Z           ]
2026-06-15T13:57:01.4414300Z         }
2026-06-15T13:57:01.4414767Z       }
2026-06-15T13:57:01.4415102Z     },
2026-06-15T13:57:01.4415436Z     {
2026-06-15T13:57:01.4415797Z       "id": "REQ-CONV-1",
2026-06-15T13:57:01.4418378Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-15T13:57:01.4420841Z       "requiredStages": [
2026-06-15T13:57:01.4421241Z         "impl",
2026-06-15T13:57:01.4421608Z         "unit"
2026-06-15T13:57:01.4421965Z       ],
2026-06-15T13:57:01.4422298Z       "stages": {
2026-06-15T13:57:01.4422674Z         "doc": {
2026-06-15T13:57:01.4482703Z           "complete": false,
2026-06-15T13:57:01.4483452Z           "evidence": []
2026-06-15T13:57:01.4483848Z         },
2026-06-15T13:57:01.4484206Z         "impl": {
2026-06-15T13:57:01.4484574Z           "complete": true,
2026-06-15T13:57:01.4485044Z           "evidence": [
2026-06-15T13:57:01.4485427Z             {
2026-06-15T13:57:01.4485841Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.4486345Z               "line": 787
2026-06-15T13:57:01.4486756Z             },
2026-06-15T13:57:01.4487100Z             {
2026-06-15T13:57:01.4487518Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.4488013Z               "line": 94
2026-06-15T13:57:01.4488388Z             },
2026-06-15T13:57:01.4488736Z             {
2026-06-15T13:57:01.4489255Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.4489785Z               "line": 345
2026-06-15T13:57:01.4490176Z             },
2026-06-15T13:57:01.4490515Z             {
2026-06-15T13:57:01.4490919Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.4491417Z               "line": 387
2026-06-15T13:57:01.4491798Z             },
2026-06-15T13:57:01.4492152Z             {
2026-06-15T13:57:01.4492557Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.4493053Z               "line": 472
2026-06-15T13:57:01.4493447Z             },
2026-06-15T13:57:01.4493803Z             {
2026-06-15T13:57:01.4494208Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.4494718Z               "line": 667
2026-06-15T13:57:01.4495096Z             },
2026-06-15T13:57:01.4495444Z             {
2026-06-15T13:57:01.4495857Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.4496358Z               "line": 693
2026-06-15T13:57:01.4496754Z             },
2026-06-15T13:57:01.4497106Z             {
2026-06-15T13:57:01.4497520Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.4498022Z               "line": 369
2026-06-15T13:57:01.4498426Z             },
2026-06-15T13:57:01.4498771Z             {
2026-06-15T13:57:01.4499273Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T13:57:01.4499758Z               "line": 19
2026-06-15T13:57:01.4500140Z             }
2026-06-15T13:57:01.4500479Z           ]
2026-06-15T13:57:01.4500823Z         },
2026-06-15T13:57:01.4501157Z         "int": {
2026-06-15T13:57:01.4501531Z           "complete": false,
2026-06-15T13:57:01.4502202Z           "evidence": []
2026-06-15T13:57:01.4502588Z         },
2026-06-15T13:57:01.4502935Z         "unit": {
2026-06-15T13:57:01.4503312Z           "complete": true,
2026-06-15T13:57:01.4503719Z           "evidence": [
2026-06-15T13:57:01.4504079Z             {
2026-06-15T13:57:01.4504483Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.4504993Z               "line": 1263
2026-06-15T13:57:01.4505379Z             },
2026-06-15T13:57:01.4505732Z             {
2026-06-15T13:57:01.4506137Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T13:57:01.4506784Z               "line": 108
2026-06-15T13:57:01.4507175Z             },
2026-06-15T13:57:01.4507528Z             {
2026-06-15T13:57:01.4507938Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T13:57:01.4508453Z               "line": 134
2026-06-15T13:57:01.4508836Z             },
2026-06-15T13:57:01.4509280Z             {
2026-06-15T13:57:01.4509694Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T13:57:01.4510195Z               "line": 144
2026-06-15T13:57:01.4510577Z             }
2026-06-15T13:57:01.4510915Z           ]
2026-06-15T13:57:01.4511239Z         }
2026-06-15T13:57:01.4511573Z       }
2026-06-15T13:57:01.4511906Z     },
2026-06-15T13:57:01.4512237Z     {
2026-06-15T13:57:01.4512590Z       "id": "REQ-CONV-2",
2026-06-15T13:57:01.4514728Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-15T13:57:01.4516635Z       "requiredStages": [
2026-06-15T13:57:01.4517040Z         "impl",
2026-06-15T13:57:01.4517391Z         "unit"
2026-06-15T13:57:01.4517740Z       ],
2026-06-15T13:57:01.4518078Z       "stages": {
2026-06-15T13:57:01.4518447Z         "doc": {
2026-06-15T13:57:01.4518823Z           "complete": false,
2026-06-15T13:57:01.4519313Z           "evidence": []
2026-06-15T13:57:01.4519694Z         },
2026-06-15T13:57:01.4520040Z         "impl": {
2026-06-15T13:57:01.4520417Z           "complete": true,
2026-06-15T13:57:01.4520817Z           "evidence": [
2026-06-15T13:57:01.4521193Z             {
2026-06-15T13:57:01.4521614Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.4522118Z               "line": 359
2026-06-15T13:57:01.4522508Z             },
2026-06-15T13:57:01.4522873Z             {
2026-06-15T13:57:01.4523298Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T13:57:01.4523822Z               "line": 119
2026-06-15T13:57:01.4524219Z             },
2026-06-15T13:57:01.4524567Z             {
2026-06-15T13:57:01.4524985Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.4525493Z               "line": 789
2026-06-15T13:57:01.4525922Z             },
2026-06-15T13:57:01.4526270Z             {
2026-06-15T13:57:01.4526689Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.4527190Z               "line": 800
2026-06-15T13:57:01.4527571Z             },
2026-06-15T13:57:01.4527923Z             {
2026-06-15T13:57:01.4528319Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.4528811Z               "line": 334
2026-06-15T13:57:01.4529283Z             },
2026-06-15T13:57:01.4529651Z             {
2026-06-15T13:57:01.4530031Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4530499Z               "line": 2678
2026-06-15T13:57:01.4530890Z             },
2026-06-15T13:57:01.4531240Z             {
2026-06-15T13:57:01.4531625Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4532101Z               "line": 2694
2026-06-15T13:57:01.4532499Z             },
2026-06-15T13:57:01.4532847Z             {
2026-06-15T13:57:01.4533226Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4533859Z               "line": 2753
2026-06-15T13:57:01.4534255Z             }
2026-06-15T13:57:01.4534593Z           ]
2026-06-15T13:57:01.4534921Z         },
2026-06-15T13:57:01.4535260Z         "int": {
2026-06-15T13:57:01.4535630Z           "complete": false,
2026-06-15T13:57:01.4536053Z           "evidence": []
2026-06-15T13:57:01.4536439Z         },
2026-06-15T13:57:01.4536797Z         "unit": {
2026-06-15T13:57:01.4537187Z           "complete": true,
2026-06-15T13:57:01.4537764Z           "evidence": [
2026-06-15T13:57:01.4538450Z             {
2026-06-15T13:57:01.4539146Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.4539657Z               "line": 889
2026-06-15T13:57:01.4540057Z             },
2026-06-15T13:57:01.4540405Z             {
2026-06-15T13:57:01.4540809Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.4541308Z               "line": 1014
2026-06-15T13:57:01.4541689Z             },
2026-06-15T13:57:01.4542051Z             {
2026-06-15T13:57:01.4542476Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T13:57:01.4542990Z               "line": 215
2026-06-15T13:57:01.4543378Z             }
2026-06-15T13:57:01.4543725Z           ]
2026-06-15T13:57:01.4544056Z         }
2026-06-15T13:57:01.4544381Z       }
2026-06-15T13:57:01.4544714Z     },
2026-06-15T13:57:01.4545039Z     {
2026-06-15T13:57:01.4545392Z       "id": "REQ-DAEMON-1",
2026-06-15T13:57:01.4545926Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-15T13:57:01.4546522Z       "requiredStages": [
2026-06-15T13:57:01.4546999Z         "impl",
2026-06-15T13:57:01.4547362Z         "unit",
2026-06-15T13:57:01.4547710Z         "int"
2026-06-15T13:57:01.4548044Z       ],
2026-06-15T13:57:01.4548386Z       "stages": {
2026-06-15T13:57:01.4548749Z         "doc": {
2026-06-15T13:57:01.4549197Z           "complete": false,
2026-06-15T13:57:01.4549612Z           "evidence": []
2026-06-15T13:57:01.4550016Z         },
2026-06-15T13:57:01.4550373Z         "impl": {
2026-06-15T13:57:01.4550747Z           "complete": true,
2026-06-15T13:57:01.4551156Z           "evidence": [
2026-06-15T13:57:01.4551530Z             {
2026-06-15T13:57:01.4551934Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:57:01.4552107Z               "line": 12
2026-06-15T13:57:01.4552273Z             },
2026-06-15T13:57:01.4552440Z             {
2026-06-15T13:57:01.4552670Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.4552855Z               "line": 16
2026-06-15T13:57:01.4553023Z             },
2026-06-15T13:57:01.4553198Z             {
2026-06-15T13:57:01.4553427Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.4553600Z               "line": 259
2026-06-15T13:57:01.4553770Z             },
2026-06-15T13:57:01.4553938Z             {
2026-06-15T13:57:01.4554165Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T13:57:01.4554336Z               "line": 15
2026-06-15T13:57:01.4554520Z             },
2026-06-15T13:57:01.4554683Z             {
2026-06-15T13:57:01.4554902Z               "path": "crates/spt/src/api/live.rs",
2026-06-15T13:57:01.4555088Z               "line": 13
2026-06-15T13:57:01.4555255Z             }
2026-06-15T13:57:01.4555421Z           ]
2026-06-15T13:57:01.4555584Z         },
2026-06-15T13:57:01.4555760Z         "int": {
2026-06-15T13:57:01.4555947Z           "complete": true,
2026-06-15T13:57:01.4556122Z           "evidence": [
2026-06-15T13:57:01.4556299Z             {
2026-06-15T13:57:01.4556543Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T13:57:01.4556717Z               "line": 32
2026-06-15T13:57:01.4556889Z             }
2026-06-15T13:57:01.4557058Z           ]
2026-06-15T13:57:01.4557217Z         },
2026-06-15T13:57:01.4557382Z         "unit": {
2026-06-15T13:57:01.4557569Z           "complete": true,
2026-06-15T13:57:01.4557740Z           "evidence": [
2026-06-15T13:57:01.4558050Z             {
2026-06-15T13:57:01.4558280Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:57:01.4558457Z               "line": 285
2026-06-15T13:57:01.4558632Z             },
2026-06-15T13:57:01.4558800Z             {
2026-06-15T13:57:01.4559505Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:57:01.4559723Z               "line": 293
2026-06-15T13:57:01.4560067Z             },
2026-06-15T13:57:01.4560271Z             {
2026-06-15T13:57:01.4560557Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:57:01.4560763Z               "line": 309
2026-06-15T13:57:01.4561312Z             },
2026-06-15T13:57:01.4561578Z             {
2026-06-15T13:57:01.4561853Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:57:01.4562094Z               "line": 317
2026-06-15T13:57:01.4562285Z             },
2026-06-15T13:57:01.4562537Z             {
2026-06-15T13:57:01.4562785Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.4563100Z               "line": 609
2026-06-15T13:57:01.4563344Z             },
2026-06-15T13:57:01.4563564Z             {
2026-06-15T13:57:01.4563859Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.4564054Z               "line": 679
2026-06-15T13:57:01.4564340Z             },
2026-06-15T13:57:01.4564537Z             {
2026-06-15T13:57:01.4564859Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T13:57:01.4565099Z               "line": 106
2026-06-15T13:57:01.4565281Z             },
2026-06-15T13:57:01.4565567Z             {
2026-06-15T13:57:01.4565834Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T13:57:01.4566096Z               "line": 132
2026-06-15T13:57:01.4566330Z             }
2026-06-15T13:57:01.4566516Z           ]
2026-06-15T13:57:01.4567212Z         }
2026-06-15T13:57:01.4567444Z       }
2026-06-15T13:57:01.4567690Z     },
2026-06-15T13:57:01.4567891Z     {
2026-06-15T13:57:01.4568139Z       "id": "REQ-DAEMON-2",
2026-06-15T13:57:01.4568558Z       "title": "Broker/brain split for seamless self-update",
2026-06-15T13:57:01.4568796Z       "requiredStages": [
2026-06-15T13:57:01.4569125Z         "impl",
2026-06-15T13:57:01.4569350Z         "unit",
2026-06-15T13:57:01.4569569Z         "int"
2026-06-15T13:57:01.4569807Z       ],
2026-06-15T13:57:01.4570079Z       "stages": {
2026-06-15T13:57:01.4570307Z         "doc": {
2026-06-15T13:57:01.4570526Z           "complete": true,
2026-06-15T13:57:01.4570746Z           "evidence": [
2026-06-15T13:57:01.4571112Z             {
2026-06-15T13:57:01.4571460Z               "path": "docs/TWO-HOST-RUNBOOK.md",
2026-06-15T13:57:01.4571699Z               "line": 250
2026-06-15T13:57:01.4571901Z             }
2026-06-15T13:57:01.4572119Z           ]
2026-06-15T13:57:01.4572347Z         },
2026-06-15T13:57:01.4572618Z         "impl": {
2026-06-15T13:57:01.4572831Z           "complete": true,
2026-06-15T13:57:01.4573069Z           "evidence": [
2026-06-15T13:57:01.4573280Z             {
2026-06-15T13:57:01.4573589Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.4573857Z               "line": 23
2026-06-15T13:57:01.4574061Z             },
2026-06-15T13:57:01.4574294Z             {
2026-06-15T13:57:01.4574552Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.4574829Z               "line": 795
2026-06-15T13:57:01.4575078Z             },
2026-06-15T13:57:01.4575267Z             {
2026-06-15T13:57:01.4575540Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.4575741Z               "line": 820
2026-06-15T13:57:01.4576037Z             },
2026-06-15T13:57:01.4576284Z             {
2026-06-15T13:57:01.4576532Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.4576775Z               "line": 1026
2026-06-15T13:57:01.4576976Z             },
2026-06-15T13:57:01.4577247Z             {
2026-06-15T13:57:01.4577520Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.4577762Z               "line": 32
2026-06-15T13:57:01.4578164Z             },
2026-06-15T13:57:01.4578366Z             {
2026-06-15T13:57:01.4578676Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.4578899Z               "line": 549
2026-06-15T13:57:01.4579204Z             },
2026-06-15T13:57:01.4579433Z             {
2026-06-15T13:57:01.4579734Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.4580005Z               "line": 1055
2026-06-15T13:57:01.4580225Z             },
2026-06-15T13:57:01.4580459Z             {
2026-06-15T13:57:01.4580872Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.4581119Z               "line": 1342
2026-06-15T13:57:01.4581377Z             },
2026-06-15T13:57:01.4581587Z             {
2026-06-15T13:57:01.4581883Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T13:57:01.4582088Z               "line": 11
2026-06-15T13:57:01.4582321Z             },
2026-06-15T13:57:01.4582503Z             {
2026-06-15T13:57:01.4582847Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.4583093Z               "line": 146
2026-06-15T13:57:01.4583296Z             },
2026-06-15T13:57:01.4583516Z             {
2026-06-15T13:57:01.4583749Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.4584040Z               "line": 274
2026-06-15T13:57:01.4584253Z             },
2026-06-15T13:57:01.4584464Z             {
2026-06-15T13:57:01.4584751Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:57:01.4584936Z               "line": 13
2026-06-15T13:57:01.4585236Z             },
2026-06-15T13:57:01.4585436Z             {
2026-06-15T13:57:01.4585723Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.4585965Z               "line": 27
2026-06-15T13:57:01.4586148Z             },
2026-06-15T13:57:01.4586444Z             {
2026-06-15T13:57:01.4586712Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.4586946Z               "line": 130
2026-06-15T13:57:01.4587145Z             },
2026-06-15T13:57:01.4587369Z             {
2026-06-15T13:57:01.4587722Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.4587937Z               "line": 537
2026-06-15T13:57:01.4588167Z             },
2026-06-15T13:57:01.4588370Z             {
2026-06-15T13:57:01.4588635Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.4588935Z               "line": 705
2026-06-15T13:57:01.4589236Z             },
2026-06-15T13:57:01.4589474Z             {
2026-06-15T13:57:01.4589740Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.4589965Z               "line": 849
2026-06-15T13:57:01.4590213Z             },
2026-06-15T13:57:01.4590466Z             {
2026-06-15T13:57:01.4590752Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.4590956Z               "line": 936
2026-06-15T13:57:01.4591180Z             },
2026-06-15T13:57:01.4591418Z             {
2026-06-15T13:57:01.4591733Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.4591937Z               "line": 982
2026-06-15T13:57:01.4592167Z             },
2026-06-15T13:57:01.4592415Z             {
2026-06-15T13:57:01.4592711Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T13:57:01.4592973Z               "line": 10
2026-06-15T13:57:01.4593167Z             }
2026-06-15T13:57:01.4593397Z           ]
2026-06-15T13:57:01.4593629Z         },
2026-06-15T13:57:01.4593865Z         "int": {
2026-06-15T13:57:01.4594128Z           "complete": true,
2026-06-15T13:57:01.4594343Z           "evidence": [
2026-06-15T13:57:01.4594581Z             {
2026-06-15T13:57:01.4594842Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-15T13:57:01.4595114Z               "line": 17
2026-06-15T13:57:01.4595357Z             },
2026-06-15T13:57:01.4595550Z             {
2026-06-15T13:57:01.4595869Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T13:57:01.4596212Z               "line": 71
2026-06-15T13:57:01.4596472Z             },
2026-06-15T13:57:01.4596680Z             {
2026-06-15T13:57:01.4596985Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T13:57:01.4597224Z               "line": 91
2026-06-15T13:57:01.4597423Z             },
2026-06-15T13:57:01.4597676Z             {
2026-06-15T13:57:01.4597958Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T13:57:01.4598215Z               "line": 167
2026-06-15T13:57:01.4598445Z             },
2026-06-15T13:57:01.4598644Z             {
2026-06-15T13:57:01.4599176Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T13:57:01.4599467Z               "line": 209
2026-06-15T13:57:01.4599695Z             },
2026-06-15T13:57:01.4599899Z             {
2026-06-15T13:57:01.4600196Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-15T13:57:01.4600458Z               "line": 128
2026-06-15T13:57:01.4600688Z             },
2026-06-15T13:57:01.4600916Z             {
2026-06-15T13:57:01.4601173Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T13:57:01.4601411Z               "line": 59
2026-06-15T13:57:01.4601671Z             }
2026-06-15T13:57:01.4601906Z           ]
2026-06-15T13:57:01.4602135Z         },
2026-06-15T13:57:01.4602336Z         "unit": {
2026-06-15T13:57:01.4602584Z           "complete": true,
2026-06-15T13:57:01.4602783Z           "evidence": [
2026-06-15T13:57:01.4603075Z             {
2026-06-15T13:57:01.4603356Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T13:57:01.4603572Z               "line": 62
2026-06-15T13:57:01.4603804Z             },
2026-06-15T13:57:01.4603990Z             {
2026-06-15T13:57:01.4604340Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T13:57:01.4604549Z               "line": 76
2026-06-15T13:57:01.4604783Z             },
2026-06-15T13:57:01.4605017Z             {
2026-06-15T13:57:01.4605260Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T13:57:01.4605561Z               "line": 88
2026-06-15T13:57:01.4605765Z             },
2026-06-15T13:57:01.4605994Z             {
2026-06-15T13:57:01.4606295Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T13:57:01.4606486Z               "line": 294
2026-06-15T13:57:01.4606772Z             },
2026-06-15T13:57:01.4606975Z             {
2026-06-15T13:57:01.4607249Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:57:01.4607446Z               "line": 771
2026-06-15T13:57:01.4607683Z             },
2026-06-15T13:57:01.4607974Z             {
2026-06-15T13:57:01.4608222Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:57:01.4608456Z               "line": 779
2026-06-15T13:57:01.4608671Z             },
2026-06-15T13:57:01.4608889Z             {
2026-06-15T13:57:01.4609277Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:57:01.4609538Z               "line": 796
2026-06-15T13:57:01.4609774Z             },
2026-06-15T13:57:01.4609993Z             {
2026-06-15T13:57:01.4610245Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:57:01.4610493Z               "line": 850
2026-06-15T13:57:01.4610733Z             },
2026-06-15T13:57:01.4610971Z             {
2026-06-15T13:57:01.4611224Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.4611456Z               "line": 1053
2026-06-15T13:57:01.4611690Z             },
2026-06-15T13:57:01.4611935Z             {
2026-06-15T13:57:01.4612187Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.4612447Z               "line": 1065
2026-06-15T13:57:01.4612662Z             },
2026-06-15T13:57:01.4612896Z             {
2026-06-15T13:57:01.4613211Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T13:57:01.4613435Z               "line": 110
2026-06-15T13:57:01.4613658Z             },
2026-06-15T13:57:01.4613878Z             {
2026-06-15T13:57:01.4614179Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T13:57:01.4614588Z               "line": 143
2026-06-15T13:57:01.4614783Z             }
2026-06-15T13:57:01.4615009Z           ]
2026-06-15T13:57:01.4615206Z         }
2026-06-15T13:57:01.4615473Z       }
2026-06-15T13:57:01.4615735Z     },
2026-06-15T13:57:01.4615925Z     {
2026-06-15T13:57:01.4616168Z       "id": "REQ-DAEMON-3",
2026-06-15T13:57:01.4616483Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-15T13:57:01.4616764Z       "requiredStages": [
2026-06-15T13:57:01.4616994Z         "impl",
2026-06-15T13:57:01.4617231Z         "unit",
2026-06-15T13:57:01.4617583Z         "int"
2026-06-15T13:57:01.4617786Z       ],
2026-06-15T13:57:01.4618073Z       "stages": {
2026-06-15T13:57:01.4618287Z         "doc": {
2026-06-15T13:57:01.4618534Z           "complete": false,
2026-06-15T13:57:01.4618740Z           "evidence": []
2026-06-15T13:57:01.4619049Z         },
2026-06-15T13:57:01.4619359Z         "impl": {
2026-06-15T13:57:01.4619594Z           "complete": true,
2026-06-15T13:57:01.4619837Z           "evidence": [
2026-06-15T13:57:01.4620036Z             {
2026-06-15T13:57:01.4620348Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.4620621Z               "line": 14
2026-06-15T13:57:01.4620844Z             },
2026-06-15T13:57:01.4621077Z             {
2026-06-15T13:57:01.4621339Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T13:57:01.4621583Z               "line": 11
2026-06-15T13:57:01.4621774Z             },
2026-06-15T13:57:01.4622060Z             {
2026-06-15T13:57:01.4622341Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:57:01.4622546Z               "line": 270
2026-06-15T13:57:01.4622791Z             },
2026-06-15T13:57:01.4622974Z             {
2026-06-15T13:57:01.4623284Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4623504Z               "line": 1711
2026-06-15T13:57:01.4623729Z             },
2026-06-15T13:57:01.4623980Z             {
2026-06-15T13:57:01.4624200Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4624490Z               "line": 3797
2026-06-15T13:57:01.4624697Z             },
2026-06-15T13:57:01.4624939Z             {
2026-06-15T13:57:01.4625205Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4625399Z               "line": 3818
2026-06-15T13:57:01.4625679Z             }
2026-06-15T13:57:01.4625883Z           ]
2026-06-15T13:57:01.4626137Z         },
2026-06-15T13:57:01.4626338Z         "int": {
2026-06-15T13:57:01.4626562Z           "complete": true,
2026-06-15T13:57:01.4626852Z           "evidence": [
2026-06-15T13:57:01.4627057Z             {
2026-06-15T13:57:01.4627362Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:57:01.4627574Z               "line": 49
2026-06-15T13:57:01.4627782Z             },
2026-06-15T13:57:01.4628034Z             {
2026-06-15T13:57:01.4628341Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:57:01.4628595Z               "line": 439
2026-06-15T13:57:01.4628804Z             }
2026-06-15T13:57:01.4629084Z           ]
2026-06-15T13:57:01.4629347Z         },
2026-06-15T13:57:01.4629605Z         "unit": {
2026-06-15T13:57:01.4629839Z           "complete": true,
2026-06-15T13:57:01.4630043Z           "evidence": [
2026-06-15T13:57:01.4630263Z             {
2026-06-15T13:57:01.4630549Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.4630820Z               "line": 767
2026-06-15T13:57:01.4631017Z             },
2026-06-15T13:57:01.4631251Z             {
2026-06-15T13:57:01.4631495Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4631753Z               "line": 9112
2026-06-15T13:57:01.4632005Z             }
2026-06-15T13:57:01.4632191Z           ]
2026-06-15T13:57:01.4632477Z         }
2026-06-15T13:57:01.4632673Z       }
2026-06-15T13:57:01.4638911Z     },
2026-06-15T13:57:01.4639259Z     {
2026-06-15T13:57:01.4639541Z       "id": "REQ-DAEMON-4",
2026-06-15T13:57:01.4639789Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-15T13:57:01.4640151Z       "requiredStages": [
2026-06-15T13:57:01.4640318Z         "impl",
2026-06-15T13:57:01.4640499Z         "unit",
2026-06-15T13:57:01.4640677Z         "int"
2026-06-15T13:57:01.4640842Z       ],
2026-06-15T13:57:01.4641024Z       "stages": {
2026-06-15T13:57:01.4641184Z         "doc": {
2026-06-15T13:57:01.4641370Z           "complete": false,
2026-06-15T13:57:01.4641539Z           "evidence": []
2026-06-15T13:57:01.4641708Z         },
2026-06-15T13:57:01.4641882Z         "impl": {
2026-06-15T13:57:01.4642060Z           "complete": true,
2026-06-15T13:57:01.4642375Z           "evidence": [
2026-06-15T13:57:01.4642536Z             {
2026-06-15T13:57:01.4642784Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.4642957Z               "line": 414
2026-06-15T13:57:01.4643118Z             },
2026-06-15T13:57:01.4643291Z             {
2026-06-15T13:57:01.4643529Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.4643713Z               "line": 479
2026-06-15T13:57:01.4643878Z             },
2026-06-15T13:57:01.4644047Z             {
2026-06-15T13:57:01.4644281Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.4644457Z               "line": 501
2026-06-15T13:57:01.4644629Z             }
2026-06-15T13:57:01.4644795Z           ]
2026-06-15T13:57:01.4644963Z         },
2026-06-15T13:57:01.4645129Z         "int": {
2026-06-15T13:57:01.4645316Z           "complete": true,
2026-06-15T13:57:01.4645488Z           "evidence": [
2026-06-15T13:57:01.4645654Z             {
2026-06-15T13:57:01.4645911Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T13:57:01.4646088Z               "line": 37
2026-06-15T13:57:01.4646258Z             }
2026-06-15T13:57:01.4646420Z           ]
2026-06-15T13:57:01.4646585Z         },
2026-06-15T13:57:01.4646756Z         "unit": {
2026-06-15T13:57:01.4646938Z           "complete": true,
2026-06-15T13:57:01.4647120Z           "evidence": [
2026-06-15T13:57:01.4647290Z             {
2026-06-15T13:57:01.4647525Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:57:01.4647692Z               "line": 428
2026-06-15T13:57:01.4647859Z             },
2026-06-15T13:57:01.4648030Z             {
2026-06-15T13:57:01.4648268Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.4648449Z               "line": 907
2026-06-15T13:57:01.4648611Z             },
2026-06-15T13:57:01.4648783Z             {
2026-06-15T13:57:01.4649084Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.4649268Z               "line": 977
2026-06-15T13:57:01.4649461Z             },
2026-06-15T13:57:01.4649643Z             {
2026-06-15T13:57:01.4649876Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.4650053Z               "line": 1007
2026-06-15T13:57:01.4650219Z             },
2026-06-15T13:57:01.4650387Z             {
2026-06-15T13:57:01.4650626Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.4650806Z               "line": 1040
2026-06-15T13:57:01.4650974Z             }
2026-06-15T13:57:01.4651150Z           ]
2026-06-15T13:57:01.4651312Z         }
2026-06-15T13:57:01.4651474Z       }
2026-06-15T13:57:01.4651637Z     },
2026-06-15T13:57:01.4651801Z     {
2026-06-15T13:57:01.4651986Z       "id": "REQ-DAEMON-5",
2026-06-15T13:57:01.4654332Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-15T13:57:01.4654541Z       "requiredStages": [
2026-06-15T13:57:01.4654707Z         "impl",
2026-06-15T13:57:01.4654884Z         "unit"
2026-06-15T13:57:01.4655170Z       ],
2026-06-15T13:57:01.4655346Z       "stages": {
2026-06-15T13:57:01.4655528Z         "doc": {
2026-06-15T13:57:01.4655704Z           "complete": false,
2026-06-15T13:57:01.4655895Z           "evidence": []
2026-06-15T13:57:01.4656052Z         },
2026-06-15T13:57:01.4656224Z         "impl": {
2026-06-15T13:57:01.4656401Z           "complete": true,
2026-06-15T13:57:01.4656585Z           "evidence": [
2026-06-15T13:57:01.4656749Z             {
2026-06-15T13:57:01.4656985Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.4657169Z               "line": 476
2026-06-15T13:57:01.4657446Z             },
2026-06-15T13:57:01.4657617Z             {
2026-06-15T13:57:01.4657860Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.4658028Z               "line": 769
2026-06-15T13:57:01.4658208Z             },
2026-06-15T13:57:01.4658375Z             {
2026-06-15T13:57:01.4658614Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.4658790Z               "line": 782
2026-06-15T13:57:01.4659033Z             },
2026-06-15T13:57:01.4659211Z             {
2026-06-15T13:57:01.4659453Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.4659635Z               "line": 800
2026-06-15T13:57:01.4659799Z             },
2026-06-15T13:57:01.4659975Z             {
2026-06-15T13:57:01.4660203Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.4660388Z               "line": 841
2026-06-15T13:57:01.4660552Z             }
2026-06-15T13:57:01.4660717Z           ]
2026-06-15T13:57:01.4660899Z         },
2026-06-15T13:57:01.4661066Z         "int": {
2026-06-15T13:57:01.4661252Z           "complete": false,
2026-06-15T13:57:01.4661423Z           "evidence": []
2026-06-15T13:57:01.4661600Z         },
2026-06-15T13:57:01.4661773Z         "unit": {
2026-06-15T13:57:01.4661957Z           "complete": true,
2026-06-15T13:57:01.4662126Z           "evidence": [
2026-06-15T13:57:01.4662291Z             {
2026-06-15T13:57:01.4662523Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.4662688Z               "line": 1189
2026-06-15T13:57:01.4662856Z             },
2026-06-15T13:57:01.4663022Z             {
2026-06-15T13:57:01.4663251Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.4663433Z               "line": 1213
2026-06-15T13:57:01.4663599Z             },
2026-06-15T13:57:01.4663771Z             {
2026-06-15T13:57:01.4663995Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.4664181Z               "line": 1239
2026-06-15T13:57:01.4664359Z             }
2026-06-15T13:57:01.4664519Z           ]
2026-06-15T13:57:01.4664698Z         }
2026-06-15T13:57:01.4664858Z       }
2026-06-15T13:57:01.4665059Z     },
2026-06-15T13:57:01.4665267Z     {
2026-06-15T13:57:01.4665468Z       "id": "REQ-DAEMON-6",
2026-06-15T13:57:01.4668855Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-15T13:57:01.4669126Z       "requiredStages": [
2026-06-15T13:57:01.4669317Z         "impl",
2026-06-15T13:57:01.4669499Z         "unit"
2026-06-15T13:57:01.4669665Z       ],
2026-06-15T13:57:01.4669838Z       "stages": {
2026-06-15T13:57:01.4670013Z         "doc": {
2026-06-15T13:57:01.4670205Z           "complete": false,
2026-06-15T13:57:01.4670383Z           "evidence": []
2026-06-15T13:57:01.4670559Z         },
2026-06-15T13:57:01.4670740Z         "impl": {
2026-06-15T13:57:01.4671049Z           "complete": true,
2026-06-15T13:57:01.4671235Z           "evidence": [
2026-06-15T13:57:01.4671398Z             {
2026-06-15T13:57:01.4671635Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.4671803Z               "line": 426
2026-06-15T13:57:01.4671983Z             },
2026-06-15T13:57:01.4672155Z             {
2026-06-15T13:57:01.4672385Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.4672561Z               "line": 457
2026-06-15T13:57:01.4672724Z             },
2026-06-15T13:57:01.4672998Z             {
2026-06-15T13:57:01.4673243Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:57:01.4673426Z               "line": 55
2026-06-15T13:57:01.4673597Z             },
2026-06-15T13:57:01.4673769Z             {
2026-06-15T13:57:01.4673998Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:57:01.4674178Z               "line": 70
2026-06-15T13:57:01.4674346Z             },
2026-06-15T13:57:01.4674526Z             {
2026-06-15T13:57:01.4674732Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4674914Z               "line": 1765
2026-06-15T13:57:01.4675089Z             },
2026-06-15T13:57:01.4675267Z             {
2026-06-15T13:57:01.4675476Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4675661Z               "line": 1791
2026-06-15T13:57:01.4675822Z             }
2026-06-15T13:57:01.4676004Z           ]
2026-06-15T13:57:01.4676175Z         },
2026-06-15T13:57:01.4676347Z         "int": {
2026-06-15T13:57:01.4676543Z           "complete": false,
2026-06-15T13:57:01.4676724Z           "evidence": []
2026-06-15T13:57:01.4676896Z         },
2026-06-15T13:57:01.4677062Z         "unit": {
2026-06-15T13:57:01.4677258Z           "complete": true,
2026-06-15T13:57:01.4677440Z           "evidence": [
2026-06-15T13:57:01.4677610Z             {
2026-06-15T13:57:01.4677831Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:57:01.4678015Z               "line": 288
2026-06-15T13:57:01.4678191Z             },
2026-06-15T13:57:01.4678351Z             {
2026-06-15T13:57:01.4678580Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:57:01.4678767Z               "line": 299
2026-06-15T13:57:01.4678933Z             },
2026-06-15T13:57:01.4679243Z             {
2026-06-15T13:57:01.4679467Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:57:01.4679653Z               "line": 325
2026-06-15T13:57:01.4679820Z             },
2026-06-15T13:57:01.4679996Z             {
2026-06-15T13:57:01.4680235Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:57:01.4680417Z               "line": 351
2026-06-15T13:57:01.4680587Z             }
2026-06-15T13:57:01.4680760Z           ]
2026-06-15T13:57:01.4680925Z         }
2026-06-15T13:57:01.4681100Z       }
2026-06-15T13:57:01.4681275Z     },
2026-06-15T13:57:01.4681453Z     {
2026-06-15T13:57:01.4681638Z       "id": "REQ-DAEMON-7",
2026-06-15T13:57:01.4684061Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-15T13:57:01.4684262Z       "requiredStages": [
2026-06-15T13:57:01.4684438Z         "impl",
2026-06-15T13:57:01.4684624Z         "unit"
2026-06-15T13:57:01.4684791Z       ],
2026-06-15T13:57:01.4684967Z       "stages": {
2026-06-15T13:57:01.4685145Z         "doc": {
2026-06-15T13:57:01.4685325Z           "complete": false,
2026-06-15T13:57:01.4685512Z           "evidence": []
2026-06-15T13:57:01.4685678Z         },
2026-06-15T13:57:01.4685856Z         "impl": {
2026-06-15T13:57:01.4686036Z           "complete": true,
2026-06-15T13:57:01.4686335Z           "evidence": [
2026-06-15T13:57:01.4686755Z             {
2026-06-15T13:57:01.4686993Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.4687175Z               "line": 476
2026-06-15T13:57:01.4687341Z             },
2026-06-15T13:57:01.4687513Z             {
2026-06-15T13:57:01.4687752Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:57:01.4687937Z               "line": 601
2026-06-15T13:57:01.4688100Z             },
2026-06-15T13:57:01.4688271Z             {
2026-06-15T13:57:01.4688509Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:57:01.4688816Z               "line": 89
2026-06-15T13:57:01.4689084Z             },
2026-06-15T13:57:01.4689254Z             {
2026-06-15T13:57:01.4689464Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4689647Z               "line": 1712
2026-06-15T13:57:01.4689817Z             }
2026-06-15T13:57:01.4689985Z           ]
2026-06-15T13:57:01.4690151Z         },
2026-06-15T13:57:01.4690333Z         "int": {
2026-06-15T13:57:01.4690522Z           "complete": false,
2026-06-15T13:57:01.4690704Z           "evidence": []
2026-06-15T13:57:01.4690867Z         },
2026-06-15T13:57:01.4691047Z         "unit": {
2026-06-15T13:57:01.4691230Z           "complete": true,
2026-06-15T13:57:01.4691409Z           "evidence": [
2026-06-15T13:57:01.4691576Z             {
2026-06-15T13:57:01.4691807Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:57:01.4691989Z               "line": 314
2026-06-15T13:57:01.4692155Z             },
2026-06-15T13:57:01.4692342Z             {
2026-06-15T13:57:01.4692547Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4692727Z               "line": 6652
2026-06-15T13:57:01.4692905Z             }
2026-06-15T13:57:01.4693070Z           ]
2026-06-15T13:57:01.4693238Z         }
2026-06-15T13:57:01.4693400Z       }
2026-06-15T13:57:01.4693572Z     },
2026-06-15T13:57:01.4693748Z     {
2026-06-15T13:57:01.4693929Z       "id": "REQ-DAEMON-8",
2026-06-15T13:57:01.4695608Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-15T13:57:01.4695795Z       "requiredStages": [
2026-06-15T13:57:01.4695971Z         "impl",
2026-06-15T13:57:01.4696147Z         "unit"
2026-06-15T13:57:01.4696310Z       ],
2026-06-15T13:57:01.4696495Z       "stages": {
2026-06-15T13:57:01.4696668Z         "doc": {
2026-06-15T13:57:01.4696862Z           "complete": false,
2026-06-15T13:57:01.4697034Z           "evidence": []
2026-06-15T13:57:01.4697205Z         },
2026-06-15T13:57:01.4697382Z         "impl": {
2026-06-15T13:57:01.4697567Z           "complete": true,
2026-06-15T13:57:01.4697744Z           "evidence": [
2026-06-15T13:57:01.4697906Z             {
2026-06-15T13:57:01.4698149Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.4698327Z               "line": 376
2026-06-15T13:57:01.4698492Z             },
2026-06-15T13:57:01.4698665Z             {
2026-06-15T13:57:01.4698884Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:57:01.4699140Z               "line": 56
2026-06-15T13:57:01.4699306Z             }
2026-06-15T13:57:01.4699485Z           ]
2026-06-15T13:57:01.4699649Z         },
2026-06-15T13:57:01.4699824Z         "int": {
2026-06-15T13:57:01.4700006Z           "complete": false,
2026-06-15T13:57:01.4700187Z           "evidence": []
2026-06-15T13:57:01.4700367Z         },
2026-06-15T13:57:01.4700536Z         "unit": {
2026-06-15T13:57:01.4700720Z           "complete": true,
2026-06-15T13:57:01.4700898Z           "evidence": [
2026-06-15T13:57:01.4701064Z             {
2026-06-15T13:57:01.4701302Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:57:01.4701480Z               "line": 288
2026-06-15T13:57:01.4701795Z             },
2026-06-15T13:57:01.4701969Z             {
2026-06-15T13:57:01.4702202Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:57:01.4702381Z               "line": 325
2026-06-15T13:57:01.4702559Z             }
2026-06-15T13:57:01.4702739Z           ]
2026-06-15T13:57:01.4702902Z         }
2026-06-15T13:57:01.4703069Z       }
2026-06-15T13:57:01.4703231Z     },
2026-06-15T13:57:01.4703393Z     {
2026-06-15T13:57:01.4703583Z       "id": "REQ-DAEMON-9",
2026-06-15T13:57:01.4711462Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-15T13:57:01.4711877Z       "requiredStages": [
2026-06-15T13:57:01.4712050Z         "impl",
2026-06-15T13:57:01.4712215Z         "unit"
2026-06-15T13:57:01.4712384Z       ],
2026-06-15T13:57:01.4712549Z       "stages": {
2026-06-15T13:57:01.4712711Z         "doc": {
2026-06-15T13:57:01.4712907Z           "complete": false,
2026-06-15T13:57:01.4713076Z           "evidence": []
2026-06-15T13:57:01.4713241Z         },
2026-06-15T13:57:01.4713424Z         "impl": {
2026-06-15T13:57:01.4713600Z           "complete": true,
2026-06-15T13:57:01.4713772Z           "evidence": [
2026-06-15T13:57:01.4713933Z             {
2026-06-15T13:57:01.4714172Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4714358Z               "line": 262
2026-06-15T13:57:01.4714515Z             },
2026-06-15T13:57:01.4714678Z             {
2026-06-15T13:57:01.4714907Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.4715077Z               "line": 600
2026-06-15T13:57:01.4715249Z             },
2026-06-15T13:57:01.4715413Z             {
2026-06-15T13:57:01.4715633Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.4715803Z               "line": 190
2026-06-15T13:57:01.4715962Z             },
2026-06-15T13:57:01.4716138Z             {
2026-06-15T13:57:01.4716362Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.4716544Z               "line": 275
2026-06-15T13:57:01.4716705Z             },
2026-06-15T13:57:01.4716868Z             {
2026-06-15T13:57:01.4717096Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.4717268Z               "line": 312
2026-06-15T13:57:01.4717426Z             },
2026-06-15T13:57:01.4717592Z             {
2026-06-15T13:57:01.4717803Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4717977Z               "line": 1820
2026-06-15T13:57:01.4718130Z             }
2026-06-15T13:57:01.4718297Z           ]
2026-06-15T13:57:01.4718459Z         },
2026-06-15T13:57:01.4718635Z         "int": {
2026-06-15T13:57:01.4718818Z           "complete": false,
2026-06-15T13:57:01.4719065Z           "evidence": []
2026-06-15T13:57:01.4719232Z         },
2026-06-15T13:57:01.4719394Z         "unit": {
2026-06-15T13:57:01.4719580Z           "complete": true,
2026-06-15T13:57:01.4719762Z           "evidence": [
2026-06-15T13:57:01.4719918Z             {
2026-06-15T13:57:01.4720152Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.4720332Z               "line": 723
2026-06-15T13:57:01.4720501Z             },
2026-06-15T13:57:01.4720659Z             {
2026-06-15T13:57:01.4720854Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4721140Z               "line": 8977
2026-06-15T13:57:01.4721307Z             }
2026-06-15T13:57:01.4721469Z           ]
2026-06-15T13:57:01.4721632Z         }
2026-06-15T13:57:01.4721798Z       }
2026-06-15T13:57:01.4721956Z     },
2026-06-15T13:57:01.4722122Z     {
2026-06-15T13:57:01.4722305Z       "id": "REQ-DOCS-1",
2026-06-15T13:57:01.4722676Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-15T13:57:01.4722847Z       "requiredStages": [
2026-06-15T13:57:01.4723009Z         "doc",
2026-06-15T13:57:01.4723179Z         "impl"
2026-06-15T13:57:01.4723454Z       ],
2026-06-15T13:57:01.4723626Z       "stages": {
2026-06-15T13:57:01.4723792Z         "doc": {
2026-06-15T13:57:01.4723974Z           "complete": true,
2026-06-15T13:57:01.4724135Z           "evidence": [
2026-06-15T13:57:01.4724303Z             {
2026-06-15T13:57:01.4724513Z               "path": "docs-site/src/index.md",
2026-06-15T13:57:01.4724680Z               "line": 50
2026-06-15T13:57:01.4724848Z             }
2026-06-15T13:57:01.4725003Z           ]
2026-06-15T13:57:01.4725167Z         },
2026-06-15T13:57:01.4725332Z         "impl": {
2026-06-15T13:57:01.4725515Z           "complete": true,
2026-06-15T13:57:01.4725694Z           "evidence": [
2026-06-15T13:57:01.4725861Z             {
2026-06-15T13:57:01.4726087Z               "path": ".github/workflows/docs-publish.yml",
2026-06-15T13:57:01.4726255Z               "line": 12
2026-06-15T13:57:01.4726411Z             },
2026-06-15T13:57:01.4726575Z             {
2026-06-15T13:57:01.4726794Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.4726970Z               "line": 14
2026-06-15T13:57:01.4727128Z             }
2026-06-15T13:57:01.4727289Z           ]
2026-06-15T13:57:01.4727447Z         },
2026-06-15T13:57:01.4727609Z         "int": {
2026-06-15T13:57:01.4727786Z           "complete": false,
2026-06-15T13:57:01.4727966Z           "evidence": []
2026-06-15T13:57:01.4728124Z         },
2026-06-15T13:57:01.4728286Z         "unit": {
2026-06-15T13:57:01.4728476Z           "complete": false,
2026-06-15T13:57:01.4728652Z           "evidence": []
2026-06-15T13:57:01.4728819Z         }
2026-06-15T13:57:01.4729049Z       }
2026-06-15T13:57:01.4729209Z     },
2026-06-15T13:57:01.4729392Z     {
2026-06-15T13:57:01.4729572Z       "id": "REQ-DOCS-2",
2026-06-15T13:57:01.4729882Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-15T13:57:01.4730054Z       "requiredStages": [
2026-06-15T13:57:01.4730221Z         "doc",
2026-06-15T13:57:01.4730383Z         "int"
2026-06-15T13:57:01.4730564Z       ],
2026-06-15T13:57:01.4730731Z       "stages": {
2026-06-15T13:57:01.4730887Z         "doc": {
2026-06-15T13:57:01.4731071Z           "complete": true,
2026-06-15T13:57:01.4731242Z           "evidence": [
2026-06-15T13:57:01.4731400Z             {
2026-06-15T13:57:01.4731719Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
2026-06-15T13:57:01.4731897Z               "line": 3
2026-06-15T13:57:01.4732076Z             },
2026-06-15T13:57:01.4732240Z             {
2026-06-15T13:57:01.4732492Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-15T13:57:01.4732664Z               "line": 3
2026-06-15T13:57:01.4732831Z             },
2026-06-15T13:57:01.4732992Z             {
2026-06-15T13:57:01.4733241Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-15T13:57:01.4733408Z               "line": 3
2026-06-15T13:57:01.4733574Z             }
2026-06-15T13:57:01.4733749Z           ]
2026-06-15T13:57:01.4733901Z         },
2026-06-15T13:57:01.4734071Z         "impl": {
2026-06-15T13:57:01.4734253Z           "complete": false,
2026-06-15T13:57:01.4734434Z           "evidence": []
2026-06-15T13:57:01.4734605Z         },
2026-06-15T13:57:01.4734769Z         "int": {
2026-06-15T13:57:01.4734948Z           "complete": true,
2026-06-15T13:57:01.4735122Z           "evidence": [
2026-06-15T13:57:01.4735282Z             {
2026-06-15T13:57:01.4735506Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T13:57:01.4735798Z               "line": 14
2026-06-15T13:57:01.4735974Z             }
2026-06-15T13:57:01.4736127Z           ]
2026-06-15T13:57:01.4736292Z         },
2026-06-15T13:57:01.4736458Z         "unit": {
2026-06-15T13:57:01.4736643Z           "complete": false,
2026-06-15T13:57:01.4736810Z           "evidence": []
2026-06-15T13:57:01.4736977Z         }
2026-06-15T13:57:01.4737158Z       }
2026-06-15T13:57:01.4737321Z     },
2026-06-15T13:57:01.4737478Z     {
2026-06-15T13:57:01.4737683Z       "id": "REQ-DOCS-3",
2026-06-15T13:57:01.4738211Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-15T13:57:01.4738421Z       "requiredStages": [
2026-06-15T13:57:01.4738594Z         "doc"
2026-06-15T13:57:01.4738769Z       ],
2026-06-15T13:57:01.4739289Z       "stages": {
2026-06-15T13:57:01.4739623Z         "doc": {
2026-06-15T13:57:01.4739803Z           "complete": true,
2026-06-15T13:57:01.4739985Z           "evidence": [
2026-06-15T13:57:01.4740147Z             {
2026-06-15T13:57:01.4740352Z               "path": "docs-site/src/index.md",
2026-06-15T13:57:01.4740534Z               "line": 42
2026-06-15T13:57:01.4740695Z             }
2026-06-15T13:57:01.4740858Z           ]
2026-06-15T13:57:01.4741019Z         },
2026-06-15T13:57:01.4741192Z         "impl": {
2026-06-15T13:57:01.4741376Z           "complete": false,
2026-06-15T13:57:01.4741557Z           "evidence": []
2026-06-15T13:57:01.4741716Z         },
2026-06-15T13:57:01.4741884Z         "int": {
2026-06-15T13:57:01.4742069Z           "complete": false,
2026-06-15T13:57:01.4742256Z           "evidence": []
2026-06-15T13:57:01.4742423Z         },
2026-06-15T13:57:01.4742585Z         "unit": {
2026-06-15T13:57:01.4742762Z           "complete": false,
2026-06-15T13:57:01.4742942Z           "evidence": []
2026-06-15T13:57:01.4743100Z         }
2026-06-15T13:57:01.4743267Z       }
2026-06-15T13:57:01.4743425Z     },
2026-06-15T13:57:01.4743591Z     {
2026-06-15T13:57:01.4743768Z       "id": "REQ-DOCS-4",
2026-06-15T13:57:01.4744140Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-15T13:57:01.4744319Z       "requiredStages": [
2026-06-15T13:57:01.4744485Z         "doc",
2026-06-15T13:57:01.4744646Z         "impl",
2026-06-15T13:57:01.4744804Z         "unit"
2026-06-15T13:57:01.4744975Z       ],
2026-06-15T13:57:01.4745133Z       "stages": {
2026-06-15T13:57:01.4745300Z         "doc": {
2026-06-15T13:57:01.4745481Z           "complete": true,
2026-06-15T13:57:01.4745653Z           "evidence": [
2026-06-15T13:57:01.4745823Z             {
2026-06-15T13:57:01.4746034Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-15T13:57:01.4746215Z               "line": 35
2026-06-15T13:57:01.4746395Z             }
2026-06-15T13:57:01.4746564Z           ]
2026-06-15T13:57:01.4746729Z         },
2026-06-15T13:57:01.4746909Z         "impl": {
2026-06-15T13:57:01.4747098Z           "complete": true,
2026-06-15T13:57:01.4747261Z           "evidence": [
2026-06-15T13:57:01.4747432Z             {
2026-06-15T13:57:01.4747676Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.4747857Z               "line": 621
2026-06-15T13:57:01.4748033Z             },
2026-06-15T13:57:01.4748196Z             {
2026-06-15T13:57:01.4748414Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.4748591Z               "line": 15
2026-06-15T13:57:01.4748757Z             }
2026-06-15T13:57:01.4748915Z           ]
2026-06-15T13:57:01.4749174Z         },
2026-06-15T13:57:01.4749339Z         "int": {
2026-06-15T13:57:01.4749517Z           "complete": false,
2026-06-15T13:57:01.4749705Z           "evidence": []
2026-06-15T13:57:01.4749873Z         },
2026-06-15T13:57:01.4750048Z         "unit": {
2026-06-15T13:57:01.4750221Z           "complete": true,
2026-06-15T13:57:01.4750402Z           "evidence": [
2026-06-15T13:57:01.4750579Z             {
2026-06-15T13:57:01.4750812Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.4751113Z               "line": 1280
2026-06-15T13:57:01.4751279Z             }
2026-06-15T13:57:01.4751456Z           ]
2026-06-15T13:57:01.4751618Z         }
2026-06-15T13:57:01.4751780Z       }
2026-06-15T13:57:01.4751936Z     },
2026-06-15T13:57:01.4752103Z     {
2026-06-15T13:57:01.4752286Z       "id": "REQ-DOCS-5",
2026-06-15T13:57:01.4752648Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-15T13:57:01.4752830Z       "requiredStages": [
2026-06-15T13:57:01.4752998Z         "impl",
2026-06-15T13:57:01.4753159Z         "int"
2026-06-15T13:57:01.4753426Z       ],
2026-06-15T13:57:01.4753607Z       "stages": {
2026-06-15T13:57:01.4753789Z         "doc": {
2026-06-15T13:57:01.4753971Z           "complete": false,
2026-06-15T13:57:01.4754151Z           "evidence": []
2026-06-15T13:57:01.4754314Z         },
2026-06-15T13:57:01.4754485Z         "impl": {
2026-06-15T13:57:01.4754667Z           "complete": true,
2026-06-15T13:57:01.4754846Z           "evidence": [
2026-06-15T13:57:01.4755021Z             {
2026-06-15T13:57:01.4755240Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.4755420Z               "line": 622
2026-06-15T13:57:01.4755584Z             },
2026-06-15T13:57:01.4755763Z             {
2026-06-15T13:57:01.4755969Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.4756150Z               "line": 113
2026-06-15T13:57:01.4756321Z             }
2026-06-15T13:57:01.4756484Z           ]
2026-06-15T13:57:01.4756660Z         },
2026-06-15T13:57:01.4756824Z         "int": {
2026-06-15T13:57:01.4757018Z           "complete": true,
2026-06-15T13:57:01.4757196Z           "evidence": [
2026-06-15T13:57:01.4757375Z             {
2026-06-15T13:57:01.4757583Z               "path": ".github/workflows/ci.yml",
2026-06-15T13:57:01.4757758Z               "line": 126
2026-06-15T13:57:01.4757931Z             },
2026-06-15T13:57:01.4758092Z             {
2026-06-15T13:57:01.4758330Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.4758517Z               "line": 1317
2026-06-15T13:57:01.4758683Z             }
2026-06-15T13:57:01.4758860Z           ]
2026-06-15T13:57:01.4759080Z         },
2026-06-15T13:57:01.4759251Z         "unit": {
2026-06-15T13:57:01.4759424Z           "complete": false,
2026-06-15T13:57:01.4759608Z           "evidence": []
2026-06-15T13:57:01.4759777Z         }
2026-06-15T13:57:01.4759938Z       }
2026-06-15T13:57:01.4760119Z     },
2026-06-15T13:57:01.4760284Z     {
2026-06-15T13:57:01.4760467Z       "id": "REQ-DOCS-6",
2026-06-15T13:57:01.4761058Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-15T13:57:01.4761262Z       "requiredStages": [
2026-06-15T13:57:01.4761439Z         "impl",
2026-06-15T13:57:01.4761611Z         "unit",
2026-06-15T13:57:01.4761787Z         "int"
2026-06-15T13:57:01.4761950Z       ],
2026-06-15T13:57:01.4762129Z       "stages": {
2026-06-15T13:57:01.4762294Z         "doc": {
2026-06-15T13:57:01.4762486Z           "complete": true,
2026-06-15T13:57:01.4762667Z           "evidence": [
2026-06-15T13:57:01.4762827Z             {
2026-06-15T13:57:01.4763076Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-15T13:57:01.4763252Z               "line": 4
2026-06-15T13:57:01.4763414Z             }
2026-06-15T13:57:01.4763577Z           ]
2026-06-15T13:57:01.4763748Z         },
2026-06-15T13:57:01.4763925Z         "impl": {
2026-06-15T13:57:01.4764105Z           "complete": true,
2026-06-15T13:57:01.4764287Z           "evidence": [
2026-06-15T13:57:01.4764458Z             {
2026-06-15T13:57:01.4764654Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4764822Z               "line": 4699
2026-06-15T13:57:01.4764987Z             }
2026-06-15T13:57:01.4765161Z           ]
2026-06-15T13:57:01.4765325Z         },
2026-06-15T13:57:01.4765488Z         "int": {
2026-06-15T13:57:01.4765670Z           "complete": true,
2026-06-15T13:57:01.4765999Z           "evidence": [
2026-06-15T13:57:01.4766158Z             {
2026-06-15T13:57:01.4766391Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T13:57:01.4766568Z               "line": 39
2026-06-15T13:57:01.4766729Z             }
2026-06-15T13:57:01.4766901Z           ]
2026-06-15T13:57:01.4767059Z         },
2026-06-15T13:57:01.4767244Z         "unit": {
2026-06-15T13:57:01.4767417Z           "complete": true,
2026-06-15T13:57:01.4767597Z           "evidence": [
2026-06-15T13:57:01.4767770Z             {
2026-06-15T13:57:01.4767968Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4768256Z               "line": 9139
2026-06-15T13:57:01.4768419Z             }
2026-06-15T13:57:01.4768595Z           ]
2026-06-15T13:57:01.4768767Z         }
2026-06-15T13:57:01.4769025Z       }
2026-06-15T13:57:01.4769177Z     },
2026-06-15T13:57:01.4769340Z     {
2026-06-15T13:57:01.4769524Z       "id": "REQ-ELEVATE-1",
2026-06-15T13:57:01.4775023Z       "title": "Cross-platform self-elevating re-launch for privilege-gated commands: a pure decision seam `decide_elevation_path(os, elevation, interactive_tty, has_display, has_pkexec, has_term_emulator) -> ElevatePath{AlreadyElevated, InlineSudo, UacWindow, Pkexec, TerminalEmulator, PrintHint}` selecting how to re-acquire privilege, and the per-OS impure launchers it dispatches — Windows UAC console (ShellExecuteW `runas` on the abs-exe + verbatim argv; the elevated child does the work, prints 'You can close this window', and pauses for a keypress; the original prints 'Elevated terminal launched…' and exits 0; NEVER pipes the child's stdout back across the privilege boundary), Linux desktop pkexec (preferred, native polkit GUI auth) else x-terminal-emulator -e sudo (fallback list x-terminal-emulator→gnome-terminal→konsole→xterm), the existing interactive-TTY inline sudo, and the headless/no-path floor that prints the absolute-path command. Reused by every gated command (not subnet-specific). Generalizes should_auto_elevate.",
2026-06-15T13:57:01.4775242Z       "requiredStages": [
2026-06-15T13:57:01.4775411Z         "doc",
2026-06-15T13:57:01.4775571Z         "impl",
2026-06-15T13:57:01.4775740Z         "unit"
2026-06-15T13:57:01.4775914Z       ],
2026-06-15T13:57:01.4776080Z       "stages": {
2026-06-15T13:57:01.4776245Z         "doc": {
2026-06-15T13:57:01.4776432Z           "complete": true,
2026-06-15T13:57:01.4776617Z           "evidence": [
2026-06-15T13:57:01.4776784Z             {
2026-06-15T13:57:01.4777241Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.4777433Z               "line": 631
2026-06-15T13:57:01.4777614Z             }
2026-06-15T13:57:01.4777790Z           ]
2026-06-15T13:57:01.4777959Z         },
2026-06-15T13:57:01.4778138Z         "impl": {
2026-06-15T13:57:01.4778316Z           "complete": true,
2026-06-15T13:57:01.4778485Z           "evidence": [
2026-06-15T13:57:01.4778652Z             {
2026-06-15T13:57:01.4778859Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4779126Z               "line": 3134
2026-06-15T13:57:01.4779295Z             },
2026-06-15T13:57:01.4779474Z             {
2026-06-15T13:57:01.4779670Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4779857Z               "line": 3179
2026-06-15T13:57:01.4780028Z             },
2026-06-15T13:57:01.4780181Z             {
2026-06-15T13:57:01.4780386Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4780563Z               "line": 3241
2026-06-15T13:57:01.4780738Z             },
2026-06-15T13:57:01.4780892Z             {
2026-06-15T13:57:01.4781111Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.4781291Z               "line": 92
2026-06-15T13:57:01.4781462Z             },
2026-06-15T13:57:01.4781634Z             {
2026-06-15T13:57:01.4781849Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.4782024Z               "line": 148
2026-06-15T13:57:01.4782192Z             }
2026-06-15T13:57:01.4782358Z           ]
2026-06-15T13:57:01.4782530Z         },
2026-06-15T13:57:01.4782827Z         "int": {
2026-06-15T13:57:01.4783016Z           "complete": false,
2026-06-15T13:57:01.4783193Z           "evidence": []
2026-06-15T13:57:01.4786843Z         },
2026-06-15T13:57:01.4787082Z         "unit": {
2026-06-15T13:57:01.4787278Z           "complete": true,
2026-06-15T13:57:01.4787496Z           "evidence": [
2026-06-15T13:57:01.4787650Z             {
2026-06-15T13:57:01.4787879Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.4788055Z               "line": 442
2026-06-15T13:57:01.4788223Z             },
2026-06-15T13:57:01.4788547Z             {
2026-06-15T13:57:01.4788775Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.4789050Z               "line": 460
2026-06-15T13:57:01.4789212Z             }
2026-06-15T13:57:01.4789386Z           ]
2026-06-15T13:57:01.4789545Z         }
2026-06-15T13:57:01.4789710Z       }
2026-06-15T13:57:01.4789874Z     },
2026-06-15T13:57:01.4790039Z     {
2026-06-15T13:57:01.4790221Z       "id": "REQ-EP-1",
2026-06-15T13:57:01.4790479Z       "title": "Day-one endpoint types; open type system",
2026-06-15T13:57:01.4790669Z       "requiredStages": [
2026-06-15T13:57:01.4790846Z         "impl",
2026-06-15T13:57:01.4791008Z         "unit"
2026-06-15T13:57:01.4791175Z       ],
2026-06-15T13:57:01.4791342Z       "stages": {
2026-06-15T13:57:01.4791508Z         "doc": {
2026-06-15T13:57:01.4791686Z           "complete": false,
2026-06-15T13:57:01.4791861Z           "evidence": []
2026-06-15T13:57:01.4792013Z         },
2026-06-15T13:57:01.4792180Z         "impl": {
2026-06-15T13:57:01.4792370Z           "complete": true,
2026-06-15T13:57:01.4792546Z           "evidence": [
2026-06-15T13:57:01.4792719Z             {
2026-06-15T13:57:01.4792952Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:57:01.4793128Z               "line": 77
2026-06-15T13:57:01.4793296Z             },
2026-06-15T13:57:01.4793462Z             {
2026-06-15T13:57:01.4793692Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:57:01.4793877Z               "line": 94
2026-06-15T13:57:01.4794040Z             }
2026-06-15T13:57:01.4794209Z           ]
2026-06-15T13:57:01.4794376Z         },
2026-06-15T13:57:01.4794550Z         "int": {
2026-06-15T13:57:01.4794728Z           "complete": false,
2026-06-15T13:57:01.4794894Z           "evidence": []
2026-06-15T13:57:01.4795071Z         },
2026-06-15T13:57:01.4795243Z         "unit": {
2026-06-15T13:57:01.4795423Z           "complete": true,
2026-06-15T13:57:01.4795601Z           "evidence": [
2026-06-15T13:57:01.4795771Z             {
2026-06-15T13:57:01.4796005Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:57:01.4796182Z               "line": 161
2026-06-15T13:57:01.4796353Z             },
2026-06-15T13:57:01.4796531Z             {
2026-06-15T13:57:01.4796759Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:57:01.4796940Z               "line": 178
2026-06-15T13:57:01.4797100Z             }
2026-06-15T13:57:01.4797275Z           ]
2026-06-15T13:57:01.4797437Z         }
2026-06-15T13:57:01.4797600Z       }
2026-06-15T13:57:01.4797766Z     },
2026-06-15T13:57:01.4797924Z     {
2026-06-15T13:57:01.4798105Z       "id": "REQ-EP-2",
2026-06-15T13:57:01.4798410Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-15T13:57:01.4798591Z       "requiredStages": [
2026-06-15T13:57:01.4798759Z         "impl",
2026-06-15T13:57:01.4799025Z         "unit"
2026-06-15T13:57:01.4799192Z       ],
2026-06-15T13:57:01.4799369Z       "stages": {
2026-06-15T13:57:01.4799544Z         "doc": {
2026-06-15T13:57:01.4799725Z           "complete": false,
2026-06-15T13:57:01.4799913Z           "evidence": []
2026-06-15T13:57:01.4800080Z         },
2026-06-15T13:57:01.4800256Z         "impl": {
2026-06-15T13:57:01.4800443Z           "complete": true,
2026-06-15T13:57:01.4800623Z           "evidence": [
2026-06-15T13:57:01.4800796Z             {
2026-06-15T13:57:01.4801025Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:57:01.4801331Z               "line": 114
2026-06-15T13:57:01.4801497Z             },
2026-06-15T13:57:01.4801659Z             {
2026-06-15T13:57:01.4801882Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:57:01.4802054Z               "line": 131
2026-06-15T13:57:01.4802222Z             },
2026-06-15T13:57:01.4802388Z             {
2026-06-15T13:57:01.4802621Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:57:01.4802797Z               "line": 138
2026-06-15T13:57:01.4802960Z             }
2026-06-15T13:57:01.4803227Z           ]
2026-06-15T13:57:01.4803389Z         },
2026-06-15T13:57:01.4803565Z         "int": {
2026-06-15T13:57:01.4803746Z           "complete": false,
2026-06-15T13:57:01.4803933Z           "evidence": []
2026-06-15T13:57:01.4804103Z         },
2026-06-15T13:57:01.4804281Z         "unit": {
2026-06-15T13:57:01.4804466Z           "complete": true,
2026-06-15T13:57:01.4804642Z           "evidence": [
2026-06-15T13:57:01.4804823Z             {
2026-06-15T13:57:01.4805049Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:57:01.4805231Z               "line": 190
2026-06-15T13:57:01.4805402Z             },
2026-06-15T13:57:01.4805574Z             {
2026-06-15T13:57:01.4805798Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:57:01.4805974Z               "line": 208
2026-06-15T13:57:01.4806151Z             },
2026-06-15T13:57:01.4806317Z             {
2026-06-15T13:57:01.4806555Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:57:01.4806738Z               "line": 221
2026-06-15T13:57:01.4806908Z             }
2026-06-15T13:57:01.4807076Z           ]
2026-06-15T13:57:01.4807237Z         }
2026-06-15T13:57:01.4807411Z       }
2026-06-15T13:57:01.4807575Z     },
2026-06-15T13:57:01.4807737Z     {
2026-06-15T13:57:01.4807916Z       "id": "REQ-EP-3",
2026-06-15T13:57:01.4808259Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-15T13:57:01.4808446Z       "requiredStages": [
2026-06-15T13:57:01.4808621Z         "impl",
2026-06-15T13:57:01.4808794Z         "unit"
2026-06-15T13:57:01.4809033Z       ],
2026-06-15T13:57:01.4809213Z       "stages": {
2026-06-15T13:57:01.4809381Z         "doc": {
2026-06-15T13:57:01.4809566Z           "complete": false,
2026-06-15T13:57:01.4809747Z           "evidence": []
2026-06-15T13:57:01.4809910Z         },
2026-06-15T13:57:01.4810090Z         "impl": {
2026-06-15T13:57:01.4810275Z           "complete": true,
2026-06-15T13:57:01.4810454Z           "evidence": [
2026-06-15T13:57:01.4810622Z             {
2026-06-15T13:57:01.4810854Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T13:57:01.4811032Z               "line": 31
2026-06-15T13:57:01.4811198Z             },
2026-06-15T13:57:01.4811370Z             {
2026-06-15T13:57:01.4811599Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T13:57:01.4811780Z               "line": 49
2026-06-15T13:57:01.4811938Z             }
2026-06-15T13:57:01.4812113Z           ]
2026-06-15T13:57:01.4812281Z         },
2026-06-15T13:57:01.4812442Z         "int": {
2026-06-15T13:57:01.4812624Z           "complete": false,
2026-06-15T13:57:01.4812806Z           "evidence": []
2026-06-15T13:57:01.4812967Z         },
2026-06-15T13:57:01.4813128Z         "unit": {
2026-06-15T13:57:01.4813319Z           "complete": true,
2026-06-15T13:57:01.4813505Z           "evidence": [
2026-06-15T13:57:01.4813657Z             {
2026-06-15T13:57:01.4813892Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T13:57:01.4814068Z               "line": 156
2026-06-15T13:57:01.4814235Z             },
2026-06-15T13:57:01.4814397Z             {
2026-06-15T13:57:01.4814616Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T13:57:01.4814798Z               "line": 164
2026-06-15T13:57:01.4814959Z             },
2026-06-15T13:57:01.4815118Z             {
2026-06-15T13:57:01.4815344Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T13:57:01.4815661Z               "line": 177
2026-06-15T13:57:01.4815835Z             },
2026-06-15T13:57:01.4816009Z             {
2026-06-15T13:57:01.4816238Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T13:57:01.4816416Z               "line": 200
2026-06-15T13:57:01.4816581Z             },
2026-06-15T13:57:01.4816745Z             {
2026-06-15T13:57:01.4816968Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T13:57:01.4817150Z               "line": 216
2026-06-15T13:57:01.4817313Z             },
2026-06-15T13:57:01.4817493Z             {
2026-06-15T13:57:01.4817812Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T13:57:01.4817995Z               "line": 233
2026-06-15T13:57:01.4818159Z             }
2026-06-15T13:57:01.4818321Z           ]
2026-06-15T13:57:01.4818490Z         }
2026-06-15T13:57:01.4818663Z       }
2026-06-15T13:57:01.4818824Z     },
2026-06-15T13:57:01.4819045Z     {
2026-06-15T13:57:01.4819230Z       "id": "REQ-EP-4",
2026-06-15T13:57:01.4819511Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-15T13:57:01.4819702Z       "requiredStages": [
2026-06-15T13:57:01.4819874Z         "impl",
2026-06-15T13:57:01.4820055Z         "unit"
2026-06-15T13:57:01.4820227Z       ],
2026-06-15T13:57:01.4820393Z       "stages": {
2026-06-15T13:57:01.4820571Z         "doc": {
2026-06-15T13:57:01.4820745Z           "complete": false,
2026-06-15T13:57:01.4820925Z           "evidence": []
2026-06-15T13:57:01.4821085Z         },
2026-06-15T13:57:01.4821263Z         "impl": {
2026-06-15T13:57:01.4821467Z           "complete": true,
2026-06-15T13:57:01.4821634Z           "evidence": [
2026-06-15T13:57:01.4821812Z             {
2026-06-15T13:57:01.4822039Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.4822216Z               "line": 717
2026-06-15T13:57:01.4822387Z             },
2026-06-15T13:57:01.4822550Z             {
2026-06-15T13:57:01.4822775Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.4822946Z               "line": 1048
2026-06-15T13:57:01.4823123Z             },
2026-06-15T13:57:01.4823289Z             {
2026-06-15T13:57:01.4823522Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.4823702Z               "line": 1359
2026-06-15T13:57:01.4823874Z             },
2026-06-15T13:57:01.4824042Z             {
2026-06-15T13:57:01.4824246Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:57:01.4824428Z               "line": 118
2026-06-15T13:57:01.4824589Z             },
2026-06-15T13:57:01.4824771Z             {
2026-06-15T13:57:01.4824986Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:57:01.4825167Z               "line": 609
2026-06-15T13:57:01.4825339Z             },
2026-06-15T13:57:01.4825500Z             {
2026-06-15T13:57:01.4825711Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:57:01.4825886Z               "line": 734
2026-06-15T13:57:01.4826056Z             },
2026-06-15T13:57:01.4826226Z             {
2026-06-15T13:57:01.4826451Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.4826622Z               "line": 217
2026-06-15T13:57:01.4826794Z             },
2026-06-15T13:57:01.4826966Z             {
2026-06-15T13:57:01.4827190Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.4827386Z               "line": 400
2026-06-15T13:57:01.4827567Z             },
2026-06-15T13:57:01.4827724Z             {
2026-06-15T13:57:01.4827953Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.4828129Z               "line": 1017
2026-06-15T13:57:01.4828301Z             }
2026-06-15T13:57:01.4828468Z           ]
2026-06-15T13:57:01.4828644Z         },
2026-06-15T13:57:01.4828824Z         "int": {
2026-06-15T13:57:01.4829074Z           "complete": false,
2026-06-15T13:57:01.4829251Z           "evidence": []
2026-06-15T13:57:01.4829422Z         },
2026-06-15T13:57:01.4829610Z         "unit": {
2026-06-15T13:57:01.4829904Z           "complete": true,
2026-06-15T13:57:01.4830085Z           "evidence": [
2026-06-15T13:57:01.4830262Z             {
2026-06-15T13:57:01.4830473Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:57:01.4830643Z               "line": 825
2026-06-15T13:57:01.4830816Z             },
2026-06-15T13:57:01.4830991Z             {
2026-06-15T13:57:01.4831229Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-15T13:57:01.4831405Z               "line": 76
2026-06-15T13:57:01.4831579Z             },
2026-06-15T13:57:01.4831737Z             {
2026-06-15T13:57:01.4832081Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-15T13:57:01.4832261Z               "line": 147
2026-06-15T13:57:01.4832428Z             }
2026-06-15T13:57:01.4832585Z           ]
2026-06-15T13:57:01.4832757Z         }
2026-06-15T13:57:01.4832933Z       }
2026-06-15T13:57:01.4833100Z     },
2026-06-15T13:57:01.4833267Z     {
2026-06-15T13:57:01.4833448Z       "id": "REQ-EP-5",
2026-06-15T13:57:01.4834597Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-15T13:57:01.4834782Z       "requiredStages": [
2026-06-15T13:57:01.4834960Z         "impl",
2026-06-15T13:57:01.4835135Z         "unit",
2026-06-15T13:57:01.4835302Z         "int"
2026-06-15T13:57:01.4835469Z       ],
2026-06-15T13:57:01.4835646Z       "stages": {
2026-06-15T13:57:01.4835822Z         "doc": {
2026-06-15T13:57:01.4836008Z           "complete": false,
2026-06-15T13:57:01.4836190Z           "evidence": []
2026-06-15T13:57:01.4836365Z         },
2026-06-15T13:57:01.4836537Z         "impl": {
2026-06-15T13:57:01.4836720Z           "complete": true,
2026-06-15T13:57:01.4836902Z           "evidence": [
2026-06-15T13:57:01.4837106Z             {
2026-06-15T13:57:01.4837344Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.4837526Z               "line": 367
2026-06-15T13:57:01.4837702Z             },
2026-06-15T13:57:01.4837869Z             {
2026-06-15T13:57:01.4838103Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T13:57:01.4838284Z               "line": 18
2026-06-15T13:57:01.4838461Z             },
2026-06-15T13:57:01.4838623Z             {
2026-06-15T13:57:01.4838847Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T13:57:01.4839110Z               "line": 63
2026-06-15T13:57:01.4839274Z             },
2026-06-15T13:57:01.4839456Z             {
2026-06-15T13:57:01.4839668Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T13:57:01.4839845Z               "line": 92
2026-06-15T13:57:01.4840021Z             },
2026-06-15T13:57:01.4840184Z             {
2026-06-15T13:57:01.4840408Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T13:57:01.4840578Z               "line": 167
2026-06-15T13:57:01.4840756Z             },
2026-06-15T13:57:01.4840927Z             {
2026-06-15T13:57:01.4841155Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T13:57:01.4841338Z               "line": 179
2026-06-15T13:57:01.4841499Z             },
2026-06-15T13:57:01.4841672Z             {
2026-06-15T13:57:01.4841889Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.4842069Z               "line": 114
2026-06-15T13:57:01.4842244Z             },
2026-06-15T13:57:01.4842412Z             {
2026-06-15T13:57:01.4842636Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:57:01.4842816Z               "line": 22
2026-06-15T13:57:01.4842989Z             },
2026-06-15T13:57:01.4843165Z             {
2026-06-15T13:57:01.4843389Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:57:01.4843571Z               "line": 145
2026-06-15T13:57:01.4843746Z             },
2026-06-15T13:57:01.4843914Z             {
2026-06-15T13:57:01.4844138Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:57:01.4844428Z               "line": 174
2026-06-15T13:57:01.4844605Z             },
2026-06-15T13:57:01.4844779Z             {
2026-06-15T13:57:01.4845004Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:57:01.4845191Z               "line": 196
2026-06-15T13:57:01.4845361Z             },
2026-06-15T13:57:01.4845529Z             {
2026-06-15T13:57:01.4845753Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:57:01.4845934Z               "line": 221
2026-06-15T13:57:01.4846111Z             },
2026-06-15T13:57:01.4846502Z             {
2026-06-15T13:57:01.4846741Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:57:01.4846921Z               "line": 247
2026-06-15T13:57:01.4847082Z             },
2026-06-15T13:57:01.4847256Z             {
2026-06-15T13:57:01.4847476Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:57:01.4847656Z               "line": 270
2026-06-15T13:57:01.4847838Z             },
2026-06-15T13:57:01.4848000Z             {
2026-06-15T13:57:01.4848233Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.4848411Z               "line": 100
2026-06-15T13:57:01.4848586Z             },
2026-06-15T13:57:01.4848763Z             {
2026-06-15T13:57:01.4849036Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4849216Z               "line": 5219
2026-06-15T13:57:01.4849379Z             },
2026-06-15T13:57:01.4849550Z             {
2026-06-15T13:57:01.4849750Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4849930Z               "line": 5353
2026-06-15T13:57:01.4850095Z             },
2026-06-15T13:57:01.4850262Z             {
2026-06-15T13:57:01.4850476Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4850658Z               "line": 5519
2026-06-15T13:57:01.4850833Z             },
2026-06-15T13:57:01.4851006Z             {
2026-06-15T13:57:01.4851210Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4851392Z               "line": 5914
2026-06-15T13:57:01.4851565Z             }
2026-06-15T13:57:01.4851735Z           ]
2026-06-15T13:57:01.4851898Z         },
2026-06-15T13:57:01.4852079Z         "int": {
2026-06-15T13:57:01.4852260Z           "complete": true,
2026-06-15T13:57:01.4852439Z           "evidence": [
2026-06-15T13:57:01.4852601Z             {
2026-06-15T13:57:01.4852848Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T13:57:01.4853024Z               "line": 16
2026-06-15T13:57:01.4853192Z             },
2026-06-15T13:57:01.4853376Z             {
2026-06-15T13:57:01.4853591Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T13:57:01.4853763Z               "line": 15
2026-06-15T13:57:01.4853925Z             }
2026-06-15T13:57:01.4854097Z           ]
2026-06-15T13:57:01.4854274Z         },
2026-06-15T13:57:01.4854446Z         "unit": {
2026-06-15T13:57:01.4854635Z           "complete": true,
2026-06-15T13:57:01.4854818Z           "evidence": [
2026-06-15T13:57:01.4854983Z             {
2026-06-15T13:57:01.4855226Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T13:57:01.4855397Z               "line": 246
2026-06-15T13:57:01.4855564Z             },
2026-06-15T13:57:01.4855736Z             {
2026-06-15T13:57:01.4855974Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T13:57:01.4856146Z               "line": 306
2026-06-15T13:57:01.4856318Z             },
2026-06-15T13:57:01.4856480Z             {
2026-06-15T13:57:01.4856710Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T13:57:01.4856894Z               "line": 363
2026-06-15T13:57:01.4857067Z             },
2026-06-15T13:57:01.4857243Z             {
2026-06-15T13:57:01.4857461Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:57:01.4857647Z               "line": 286
2026-06-15T13:57:01.4857807Z             },
2026-06-15T13:57:01.4857984Z             {
2026-06-15T13:57:01.4858207Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:57:01.4858503Z               "line": 338
2026-06-15T13:57:01.4858684Z             },
2026-06-15T13:57:01.4858850Z             {
2026-06-15T13:57:01.4859151Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.4859323Z               "line": 659
2026-06-15T13:57:01.4859494Z             },
2026-06-15T13:57:01.4859666Z             {
2026-06-15T13:57:01.4859868Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4860048Z               "line": 7191
2026-06-15T13:57:01.4860207Z             },
2026-06-15T13:57:01.4860485Z             {
2026-06-15T13:57:01.4860693Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4860870Z               "line": 7318
2026-06-15T13:57:01.4861046Z             },
2026-06-15T13:57:01.4861213Z             {
2026-06-15T13:57:01.4861422Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4861599Z               "line": 7907
2026-06-15T13:57:01.4861775Z             },
2026-06-15T13:57:01.4861947Z             {
2026-06-15T13:57:01.4862162Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4862347Z               "line": 8023
2026-06-15T13:57:01.4862511Z             }
2026-06-15T13:57:01.4862686Z           ]
2026-06-15T13:57:01.4862849Z         }
2026-06-15T13:57:01.4863014Z       }
2026-06-15T13:57:01.4863180Z     },
2026-06-15T13:57:01.4863345Z     {
2026-06-15T13:57:01.4863518Z       "id": "REQ-EP-6",
2026-06-15T13:57:01.4865938Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6",
2026-06-15T13:57:01.4866143Z       "requiredStages": [
2026-06-15T13:57:01.4866326Z         "doc",
2026-06-15T13:57:01.4866501Z         "impl",
2026-06-15T13:57:01.4866669Z         "unit"
2026-06-15T13:57:01.4866834Z       ],
2026-06-15T13:57:01.4867016Z       "stages": {
2026-06-15T13:57:01.4867188Z         "doc": {
2026-06-15T13:57:01.4867373Z           "complete": true,
2026-06-15T13:57:01.4867556Z           "evidence": [
2026-06-15T13:57:01.4867716Z             {
2026-06-15T13:57:01.4867909Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.4868083Z               "line": 208
2026-06-15T13:57:01.4868255Z             }
2026-06-15T13:57:01.4868434Z           ]
2026-06-15T13:57:01.4868611Z         },
2026-06-15T13:57:01.4868791Z         "impl": {
2026-06-15T13:57:01.4869044Z           "complete": true,
2026-06-15T13:57:01.4869221Z           "evidence": [
2026-06-15T13:57:01.4869392Z             {
2026-06-15T13:57:01.4869622Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.4869784Z               "line": 174
2026-06-15T13:57:01.4869964Z             }
2026-06-15T13:57:01.4870137Z           ]
2026-06-15T13:57:01.4870303Z         },
2026-06-15T13:57:01.4870481Z         "int": {
2026-06-15T13:57:01.4870665Z           "complete": true,
2026-06-15T13:57:01.4870842Z           "evidence": [
2026-06-15T13:57:01.4871012Z             {
2026-06-15T13:57:01.4871248Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-15T13:57:01.4871425Z               "line": 18
2026-06-15T13:57:01.4871591Z             }
2026-06-15T13:57:01.4871769Z           ]
2026-06-15T13:57:01.4871935Z         },
2026-06-15T13:57:01.4872126Z         "unit": {
2026-06-15T13:57:01.4872307Z           "complete": true,
2026-06-15T13:57:01.4872483Z           "evidence": [
2026-06-15T13:57:01.4872660Z             {
2026-06-15T13:57:01.4872898Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.4873080Z               "line": 534
2026-06-15T13:57:01.4873241Z             },
2026-06-15T13:57:01.4873418Z             {
2026-06-15T13:57:01.4873763Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.4873953Z               "line": 629
2026-06-15T13:57:01.4874130Z             }
2026-06-15T13:57:01.4874293Z           ]
2026-06-15T13:57:01.4874454Z         }
2026-06-15T13:57:01.4874617Z       }
2026-06-15T13:57:01.4874792Z     },
2026-06-15T13:57:01.4874950Z     {
2026-06-15T13:57:01.4875131Z       "id": "REQ-EP-7",
2026-06-15T13:57:01.4877820Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
2026-06-15T13:57:01.4878121Z       "requiredStages": [
2026-06-15T13:57:01.4878301Z         "doc",
2026-06-15T13:57:01.4878460Z         "impl",
2026-06-15T13:57:01.4878634Z         "unit"
2026-06-15T13:57:01.4878801Z       ],
2026-06-15T13:57:01.4879051Z       "stages": {
2026-06-15T13:57:01.4879228Z         "doc": {
2026-06-15T13:57:01.4879409Z           "complete": true,
2026-06-15T13:57:01.4879585Z           "evidence": [
2026-06-15T13:57:01.4879758Z             {
2026-06-15T13:57:01.4879957Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.4880138Z               "line": 434
2026-06-15T13:57:01.4880319Z             }
2026-06-15T13:57:01.4880496Z           ]
2026-06-15T13:57:01.4880668Z         },
2026-06-15T13:57:01.4880849Z         "impl": {
2026-06-15T13:57:01.4881027Z           "complete": true,
2026-06-15T13:57:01.4881206Z           "evidence": [
2026-06-15T13:57:01.4881384Z             {
2026-06-15T13:57:01.4881606Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:57:01.4881794Z               "line": 505
2026-06-15T13:57:01.4881966Z             },
2026-06-15T13:57:01.4882147Z             {
2026-06-15T13:57:01.4882367Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T13:57:01.4882547Z               "line": 87
2026-06-15T13:57:01.4882710Z             },
2026-06-15T13:57:01.4882886Z             {
2026-06-15T13:57:01.4883129Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.4883297Z               "line": 81
2026-06-15T13:57:01.4883478Z             },
2026-06-15T13:57:01.4883640Z             {
2026-06-15T13:57:01.4883869Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.4884068Z               "line": 166
2026-06-15T13:57:01.4884240Z             },
2026-06-15T13:57:01.4884404Z             {
2026-06-15T13:57:01.4884605Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4884790Z               "line": 1446
2026-06-15T13:57:01.4884967Z             }
2026-06-15T13:57:01.4885133Z           ]
2026-06-15T13:57:01.4885310Z         },
2026-06-15T13:57:01.4885473Z         "int": {
2026-06-15T13:57:01.4885649Z           "complete": false,
2026-06-15T13:57:01.4885835Z           "evidence": []
2026-06-15T13:57:01.4886006Z         },
2026-06-15T13:57:01.4886183Z         "unit": {
2026-06-15T13:57:01.4886368Z           "complete": true,
2026-06-15T13:57:01.4886540Z           "evidence": [
2026-06-15T13:57:01.4886703Z             {
2026-06-15T13:57:01.4886926Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:57:01.4887141Z               "line": 623
2026-06-15T13:57:01.4887335Z             },
2026-06-15T13:57:01.4887564Z             {
2026-06-15T13:57:01.4887784Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:57:01.4887959Z               "line": 212
2026-06-15T13:57:01.4888118Z             },
2026-06-15T13:57:01.4888293Z             {
2026-06-15T13:57:01.4888508Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T13:57:01.4888691Z               "line": 307
2026-06-15T13:57:01.4889048Z             },
2026-06-15T13:57:01.4889218Z             {
2026-06-15T13:57:01.4889431Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4889606Z               "line": 6328
2026-06-15T13:57:01.4889783Z             },
2026-06-15T13:57:01.4889945Z             {
2026-06-15T13:57:01.4890145Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4890323Z               "line": 6355
2026-06-15T13:57:01.4890488Z             }
2026-06-15T13:57:01.4890656Z           ]
2026-06-15T13:57:01.4890817Z         }
2026-06-15T13:57:01.4890990Z       }
2026-06-15T13:57:01.4891252Z     },
2026-06-15T13:57:01.4891419Z     {
2026-06-15T13:57:01.4891601Z       "id": "REQ-FRONT-1",
2026-06-15T13:57:01.4891925Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-15T13:57:01.4892109Z       "requiredStages": [],
2026-06-15T13:57:01.4892271Z       "stages": {
2026-06-15T13:57:01.4892454Z         "doc": {
2026-06-15T13:57:01.4892632Z           "complete": false,
2026-06-15T13:57:01.4892817Z           "evidence": []
2026-06-15T13:57:01.4892989Z         },
2026-06-15T13:57:01.4893156Z         "impl": {
2026-06-15T13:57:01.4893336Z           "complete": false,
2026-06-15T13:57:01.4893514Z           "evidence": []
2026-06-15T13:57:01.4893684Z         },
2026-06-15T13:57:01.4893853Z         "int": {
2026-06-15T13:57:01.4894028Z           "complete": false,
2026-06-15T13:57:01.4894209Z           "evidence": []
2026-06-15T13:57:01.4894372Z         },
2026-06-15T13:57:01.4894552Z         "unit": {
2026-06-15T13:57:01.4894733Z           "complete": false,
2026-06-15T13:57:01.4894926Z           "evidence": []
2026-06-15T13:57:01.4895093Z         }
2026-06-15T13:57:01.4895264Z       }
2026-06-15T13:57:01.4895437Z     },
2026-06-15T13:57:01.4895598Z     {
2026-06-15T13:57:01.4895808Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
2026-06-15T13:57:01.4899893Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
2026-06-15T13:57:01.4900109Z       "requiredStages": [
2026-06-15T13:57:01.4900286Z         "doc",
2026-06-15T13:57:01.4900462Z         "impl",
2026-06-15T13:57:01.4900634Z         "unit",
2026-06-15T13:57:01.4900805Z         "int"
2026-06-15T13:57:01.4900973Z       ],
2026-06-15T13:57:01.4901155Z       "stages": {
2026-06-15T13:57:01.4901325Z         "doc": {
2026-06-15T13:57:01.4901517Z           "complete": true,
2026-06-15T13:57:01.4901701Z           "evidence": [
2026-06-15T13:57:01.4901860Z             {
2026-06-15T13:57:01.4902074Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:57:01.4902245Z               "line": 326
2026-06-15T13:57:01.4902418Z             }
2026-06-15T13:57:01.4902588Z           ]
2026-06-15T13:57:01.4902760Z         },
2026-06-15T13:57:01.4902924Z         "impl": {
2026-06-15T13:57:01.4903105Z           "complete": true,
2026-06-15T13:57:01.4903286Z           "evidence": [
2026-06-15T13:57:01.4903454Z             {
2026-06-15T13:57:01.4903702Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4903883Z               "line": 480
2026-06-15T13:57:01.4904060Z             },
2026-06-15T13:57:01.4904230Z             {
2026-06-15T13:57:01.4904455Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4904756Z               "line": 485
2026-06-15T13:57:01.4904917Z             },
2026-06-15T13:57:01.4905090Z             {
2026-06-15T13:57:01.4905321Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4905495Z               "line": 860
2026-06-15T13:57:01.4905663Z             },
2026-06-15T13:57:01.4905834Z             {
2026-06-15T13:57:01.4906063Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4906239Z               "line": 901
2026-06-15T13:57:01.4906412Z             },
2026-06-15T13:57:01.4906569Z             {
2026-06-15T13:57:01.4906908Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4907088Z               "line": 912
2026-06-15T13:57:01.4907261Z             },
2026-06-15T13:57:01.4907431Z             {
2026-06-15T13:57:01.4907651Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.4907833Z               "line": 358
2026-06-15T13:57:01.4907998Z             }
2026-06-15T13:57:01.4908170Z           ]
2026-06-15T13:57:01.4908341Z         },
2026-06-15T13:57:01.4908508Z         "int": {
2026-06-15T13:57:01.4908708Z           "complete": true,
2026-06-15T13:57:01.4908885Z           "evidence": [
2026-06-15T13:57:01.4909119Z             {
2026-06-15T13:57:01.4909361Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
2026-06-15T13:57:01.4909558Z               "line": 30
2026-06-15T13:57:01.4909728Z             }
2026-06-15T13:57:01.4909896Z           ]
2026-06-15T13:57:01.4910067Z         },
2026-06-15T13:57:01.4910238Z         "unit": {
2026-06-15T13:57:01.4910438Z           "complete": true,
2026-06-15T13:57:01.4910613Z           "evidence": [
2026-06-15T13:57:01.4910789Z             {
2026-06-15T13:57:01.4911027Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4911190Z               "line": 1453
2026-06-15T13:57:01.4911351Z             },
2026-06-15T13:57:01.4911523Z             {
2026-06-15T13:57:01.4911757Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4911938Z               "line": 1478
2026-06-15T13:57:01.4912105Z             },
2026-06-15T13:57:01.4912276Z             {
2026-06-15T13:57:01.4912505Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4912693Z               "line": 1495
2026-06-15T13:57:01.4912858Z             },
2026-06-15T13:57:01.4913036Z             {
2026-06-15T13:57:01.4913257Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4913433Z               "line": 1538
2026-06-15T13:57:01.4913608Z             }
2026-06-15T13:57:01.4913780Z           ]
2026-06-15T13:57:01.4913952Z         }
2026-06-15T13:57:01.4914123Z       }
2026-06-15T13:57:01.4914291Z     },
2026-06-15T13:57:01.4914452Z     {
2026-06-15T13:57:01.4914677Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-15T13:57:01.4918864Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-15T13:57:01.4919126Z       "requiredStages": [
2026-06-15T13:57:01.4919302Z         "doc",
2026-06-15T13:57:01.4919483Z         "impl",
2026-06-15T13:57:01.4919654Z         "unit",
2026-06-15T13:57:01.4919827Z         "int"
2026-06-15T13:57:01.4919998Z       ],
2026-06-15T13:57:01.4920174Z       "stages": {
2026-06-15T13:57:01.4920470Z         "doc": {
2026-06-15T13:57:01.4920647Z           "complete": true,
2026-06-15T13:57:01.4920822Z           "evidence": [
2026-06-15T13:57:01.4920984Z             {
2026-06-15T13:57:01.4921197Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:57:01.4921383Z               "line": 295
2026-06-15T13:57:01.4921549Z             }
2026-06-15T13:57:01.4924589Z           ]
2026-06-15T13:57:01.4924793Z         },
2026-06-15T13:57:01.4924980Z         "impl": {
2026-06-15T13:57:01.4925161Z           "complete": true,
2026-06-15T13:57:01.4925337Z           "evidence": [
2026-06-15T13:57:01.4925670Z             {
2026-06-15T13:57:01.4925928Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.4926110Z               "line": 108
2026-06-15T13:57:01.4926271Z             },
2026-06-15T13:57:01.4926437Z             {
2026-06-15T13:57:01.4926663Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.4926840Z               "line": 794
2026-06-15T13:57:01.4927011Z             },
2026-06-15T13:57:01.4927174Z             {
2026-06-15T13:57:01.4927399Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.4927575Z               "line": 994
2026-06-15T13:57:01.4927737Z             },
2026-06-15T13:57:01.4927899Z             {
2026-06-15T13:57:01.4928137Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4928313Z               "line": 23
2026-06-15T13:57:01.4928480Z             },
2026-06-15T13:57:01.4928648Z             {
2026-06-15T13:57:01.4928881Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4929147Z               "line": 113
2026-06-15T13:57:01.4929314Z             },
2026-06-15T13:57:01.4929476Z             {
2026-06-15T13:57:01.4929715Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4929886Z               "line": 158
2026-06-15T13:57:01.4930058Z             },
2026-06-15T13:57:01.4930215Z             {
2026-06-15T13:57:01.4930444Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4930626Z               "line": 215
2026-06-15T13:57:01.4930796Z             },
2026-06-15T13:57:01.4930955Z             {
2026-06-15T13:57:01.4931169Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4931345Z               "line": 247
2026-06-15T13:57:01.4931505Z             },
2026-06-15T13:57:01.4931667Z             {
2026-06-15T13:57:01.4931895Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4932066Z               "line": 261
2026-06-15T13:57:01.4932239Z             },
2026-06-15T13:57:01.4932405Z             {
2026-06-15T13:57:01.4932639Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4932815Z               "line": 306
2026-06-15T13:57:01.4932978Z             },
2026-06-15T13:57:01.4933149Z             {
2026-06-15T13:57:01.4933363Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4933545Z               "line": 333
2026-06-15T13:57:01.4933711Z             },
2026-06-15T13:57:01.4933879Z             {
2026-06-15T13:57:01.4934113Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4934292Z               "line": 345
2026-06-15T13:57:01.4934459Z             },
2026-06-15T13:57:01.4934624Z             {
2026-06-15T13:57:01.4934849Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4935024Z               "line": 359
2026-06-15T13:57:01.4935206Z             },
2026-06-15T13:57:01.4935368Z             {
2026-06-15T13:57:01.4935606Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4935792Z               "line": 386
2026-06-15T13:57:01.4935958Z             },
2026-06-15T13:57:01.4936126Z             {
2026-06-15T13:57:01.4936341Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4936525Z               "line": 629
2026-06-15T13:57:01.4936695Z             },
2026-06-15T13:57:01.4936864Z             {
2026-06-15T13:57:01.4937218Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4937387Z               "line": 958
2026-06-15T13:57:01.4937562Z             },
2026-06-15T13:57:01.4937720Z             {
2026-06-15T13:57:01.4937944Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.4938121Z               "line": 178
2026-06-15T13:57:01.4938279Z             },
2026-06-15T13:57:01.4938454Z             {
2026-06-15T13:57:01.4938669Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.4938845Z               "line": 590
2026-06-15T13:57:01.4939193Z             },
2026-06-15T13:57:01.4939364Z             {
2026-06-15T13:57:01.4939595Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.4939764Z               "line": 662
2026-06-15T13:57:01.4939941Z             },
2026-06-15T13:57:01.4940102Z             {
2026-06-15T13:57:01.4940328Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.4940509Z               "line": 674
2026-06-15T13:57:01.4940676Z             },
2026-06-15T13:57:01.4940842Z             {
2026-06-15T13:57:01.4941060Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.4941243Z               "line": 1084
2026-06-15T13:57:01.4941409Z             },
2026-06-15T13:57:01.4941581Z             {
2026-06-15T13:57:01.4941801Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.4941985Z               "line": 181
2026-06-15T13:57:01.4942142Z             },
2026-06-15T13:57:01.4942302Z             {
2026-06-15T13:57:01.4942527Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.4942702Z               "line": 223
2026-06-15T13:57:01.4942865Z             },
2026-06-15T13:57:01.4943022Z             {
2026-06-15T13:57:01.4943232Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.4943405Z               "line": 234
2026-06-15T13:57:01.4943570Z             },
2026-06-15T13:57:01.4943738Z             {
2026-06-15T13:57:01.4943962Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.4944142Z               "line": 260
2026-06-15T13:57:01.4944315Z             },
2026-06-15T13:57:01.4944476Z             {
2026-06-15T13:57:01.4944731Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:57:01.4944909Z               "line": 56
2026-06-15T13:57:01.4945085Z             },
2026-06-15T13:57:01.4945245Z             {
2026-06-15T13:57:01.4945470Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:57:01.4945647Z               "line": 188
2026-06-15T13:57:01.4945817Z             },
2026-06-15T13:57:01.4945986Z             {
2026-06-15T13:57:01.4946204Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T13:57:01.4946376Z               "line": 63
2026-06-15T13:57:01.4946542Z             },
2026-06-15T13:57:01.4946705Z             {
2026-06-15T13:57:01.4946930Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.4947100Z               "line": 258
2026-06-15T13:57:01.4947274Z             },
2026-06-15T13:57:01.4947438Z             {
2026-06-15T13:57:01.4947656Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.4947826Z               "line": 424
2026-06-15T13:57:01.4947990Z             },
2026-06-15T13:57:01.4948151Z             {
2026-06-15T13:57:01.4948347Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.4948524Z               "line": 1751
2026-06-15T13:57:01.4948680Z             }
2026-06-15T13:57:01.4948853Z           ]
2026-06-15T13:57:01.4949114Z         },
2026-06-15T13:57:01.4949281Z         "int": {
2026-06-15T13:57:01.4949497Z           "complete": true,
2026-06-15T13:57:01.4949701Z           "evidence": [
2026-06-15T13:57:01.4949873Z             {
2026-06-15T13:57:01.4950107Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T13:57:01.4950282Z               "line": 57
2026-06-15T13:57:01.4950444Z             },
2026-06-15T13:57:01.4950734Z             {
2026-06-15T13:57:01.4950963Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-15T13:57:01.4951136Z               "line": 41
2026-06-15T13:57:01.4951306Z             }
2026-06-15T13:57:01.4951469Z           ]
2026-06-15T13:57:01.4951640Z         },
2026-06-15T13:57:01.4951813Z         "unit": {
2026-06-15T13:57:01.4951998Z           "complete": true,
2026-06-15T13:57:01.4952179Z           "evidence": [
2026-06-15T13:57:01.4952342Z             {
2026-06-15T13:57:01.4952569Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.4952857Z               "line": 532
2026-06-15T13:57:01.4953025Z             },
2026-06-15T13:57:01.4953177Z             {
2026-06-15T13:57:01.4953420Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.4953601Z               "line": 755
2026-06-15T13:57:01.4953764Z             },
2026-06-15T13:57:01.4953950Z             {
2026-06-15T13:57:01.4954168Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4954351Z               "line": 1027
2026-06-15T13:57:01.4954517Z             },
2026-06-15T13:57:01.4954680Z             {
2026-06-15T13:57:01.4954914Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4955084Z               "line": 1061
2026-06-15T13:57:01.4955257Z             },
2026-06-15T13:57:01.4955417Z             {
2026-06-15T13:57:01.4955650Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4955824Z               "line": 1103
2026-06-15T13:57:01.4956002Z             },
2026-06-15T13:57:01.4956187Z             {
2026-06-15T13:57:01.4956411Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4956593Z               "line": 1175
2026-06-15T13:57:01.4956759Z             },
2026-06-15T13:57:01.4956922Z             {
2026-06-15T13:57:01.4957151Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4957327Z               "line": 1188
2026-06-15T13:57:01.4957485Z             },
2026-06-15T13:57:01.4957646Z             {
2026-06-15T13:57:01.4957881Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4958055Z               "line": 1211
2026-06-15T13:57:01.4958226Z             },
2026-06-15T13:57:01.4958401Z             {
2026-06-15T13:57:01.4958630Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4958807Z               "line": 1237
2026-06-15T13:57:01.4959045Z             },
2026-06-15T13:57:01.4959207Z             {
2026-06-15T13:57:01.4959427Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4959607Z               "line": 1251
2026-06-15T13:57:01.4959780Z             },
2026-06-15T13:57:01.4959946Z             {
2026-06-15T13:57:01.4960170Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4960348Z               "line": 1275
2026-06-15T13:57:01.4960513Z             },
2026-06-15T13:57:01.4960677Z             {
2026-06-15T13:57:01.4960894Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4961071Z               "line": 1407
2026-06-15T13:57:01.4961232Z             },
2026-06-15T13:57:01.4961391Z             {
2026-06-15T13:57:01.4961609Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4961791Z               "line": 1583
2026-06-15T13:57:01.4961968Z             },
2026-06-15T13:57:01.4962129Z             {
2026-06-15T13:57:01.4962363Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4962534Z               "line": 1638
2026-06-15T13:57:01.4962702Z             },
2026-06-15T13:57:01.4962859Z             {
2026-06-15T13:57:01.4963082Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4963262Z               "line": 1684
2026-06-15T13:57:01.4963432Z             },
2026-06-15T13:57:01.4963599Z             {
2026-06-15T13:57:01.4963818Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4963995Z               "line": 1729
2026-06-15T13:57:01.4964272Z             },
2026-06-15T13:57:01.4964442Z             {
2026-06-15T13:57:01.4964653Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4964835Z               "line": 1773
2026-06-15T13:57:01.4964997Z             },
2026-06-15T13:57:01.4965159Z             {
2026-06-15T13:57:01.4965387Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.4965564Z               "line": 1815
2026-06-15T13:57:01.4965736Z             },
2026-06-15T13:57:01.4965903Z             {
2026-06-15T13:57:01.4966125Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.4966409Z               "line": 1418
2026-06-15T13:57:01.4966567Z             },
2026-06-15T13:57:01.4966733Z             {
2026-06-15T13:57:01.4966942Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:57:01.4967125Z               "line": 217
2026-06-15T13:57:01.4967286Z             },
2026-06-15T13:57:01.4967445Z             {
2026-06-15T13:57:01.4967677Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:57:01.4967853Z               "line": 233
2026-06-15T13:57:01.4968017Z             },
2026-06-15T13:57:01.4968172Z             {
2026-06-15T13:57:01.4968394Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:57:01.4968573Z               "line": 254
2026-06-15T13:57:01.4968744Z             },
2026-06-15T13:57:01.4968913Z             {
2026-06-15T13:57:01.4969223Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:57:01.4969396Z               "line": 265
2026-06-15T13:57:01.4969562Z             },
2026-06-15T13:57:01.4969734Z             {
2026-06-15T13:57:01.4969978Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:57:01.4970249Z               "line": 278
2026-06-15T13:57:01.4970492Z             },
2026-06-15T13:57:01.4970664Z             {
2026-06-15T13:57:01.4970893Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:57:01.4971073Z               "line": 289
2026-06-15T13:57:01.4971242Z             },
2026-06-15T13:57:01.4971407Z             {
2026-06-15T13:57:01.4971622Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:57:01.4971801Z               "line": 301
2026-06-15T13:57:01.4971965Z             },
2026-06-15T13:57:01.4972126Z             {
2026-06-15T13:57:01.4972346Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:57:01.4972523Z               "line": 312
2026-06-15T13:57:01.4972685Z             },
2026-06-15T13:57:01.4972843Z             {
2026-06-15T13:57:01.4973066Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:57:01.4973238Z               "line": 323
2026-06-15T13:57:01.4973414Z             },
2026-06-15T13:57:01.4973572Z             {
2026-06-15T13:57:01.4973799Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:57:01.4973973Z               "line": 332
2026-06-15T13:57:01.4974140Z             },
2026-06-15T13:57:01.4974316Z             {
2026-06-15T13:57:01.4974532Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:57:01.4974707Z               "line": 342
2026-06-15T13:57:01.4974874Z             },
2026-06-15T13:57:01.4975036Z             {
2026-06-15T13:57:01.4975256Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:57:01.4975433Z               "line": 358
2026-06-15T13:57:01.4975604Z             },
2026-06-15T13:57:01.4975767Z             {
2026-06-15T13:57:01.4975991Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.4976171Z               "line": 708
2026-06-15T13:57:01.4976339Z             },
2026-06-15T13:57:01.4976505Z             {
2026-06-15T13:57:01.4976728Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.4976897Z               "line": 744
2026-06-15T13:57:01.4977061Z             },
2026-06-15T13:57:01.4977226Z             {
2026-06-15T13:57:01.4977461Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.4977756Z               "line": 966
2026-06-15T13:57:01.4977918Z             },
2026-06-15T13:57:01.4978080Z             {
2026-06-15T13:57:01.4978310Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T13:57:01.4978485Z               "line": 143
2026-06-15T13:57:01.4978649Z             },
2026-06-15T13:57:01.4978819Z             {
2026-06-15T13:57:01.4979114Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T13:57:01.4979300Z               "line": 222
2026-06-15T13:57:01.4979454Z             },
2026-06-15T13:57:01.4979627Z             {
2026-06-15T13:57:01.4979984Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T13:57:01.4980170Z               "line": 291
2026-06-15T13:57:01.4980338Z             },
2026-06-15T13:57:01.4980495Z             {
2026-06-15T13:57:01.4980713Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-15T13:57:01.4980882Z               "line": 17
2026-06-15T13:57:01.4981042Z             },
2026-06-15T13:57:01.4981206Z             {
2026-06-15T13:57:01.4981424Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-15T13:57:01.4981604Z               "line": 104
2026-06-15T13:57:01.4981773Z             }
2026-06-15T13:57:01.4981938Z           ]
2026-06-15T13:57:01.4982100Z         }
2026-06-15T13:57:01.4982267Z       }
2026-06-15T13:57:01.4982429Z     },
2026-06-15T13:57:01.4982591Z     {
2026-06-15T13:57:01.4982806Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-15T13:57:01.4983126Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-15T13:57:01.4983320Z       "requiredStages": [
2026-06-15T13:57:01.4983497Z         "impl",
2026-06-15T13:57:01.4983674Z         "unit"
2026-06-15T13:57:01.4983831Z       ],
2026-06-15T13:57:01.4984008Z       "stages": {
2026-06-15T13:57:01.4984174Z         "doc": {
2026-06-15T13:57:01.4984354Z           "complete": false,
2026-06-15T13:57:01.4984529Z           "evidence": []
2026-06-15T13:57:01.4984696Z         },
2026-06-15T13:57:01.4984881Z         "impl": {
2026-06-15T13:57:01.4985059Z           "complete": true,
2026-06-15T13:57:01.4985238Z           "evidence": [
2026-06-15T13:57:01.4985406Z             {
2026-06-15T13:57:01.4985626Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.4985802Z               "line": 168
2026-06-15T13:57:01.4985970Z             },
2026-06-15T13:57:01.4986145Z             {
2026-06-15T13:57:01.4986355Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:57:01.4986536Z               "line": 18
2026-06-15T13:57:01.4986703Z             },
2026-06-15T13:57:01.4986871Z             {
2026-06-15T13:57:01.4987093Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:57:01.4987269Z               "line": 100
2026-06-15T13:57:01.4987438Z             }
2026-06-15T13:57:01.4987596Z           ]
2026-06-15T13:57:01.4987767Z         },
2026-06-15T13:57:01.4987940Z         "int": {
2026-06-15T13:57:01.4988125Z           "complete": false,
2026-06-15T13:57:01.4988307Z           "evidence": []
2026-06-15T13:57:01.4988464Z         },
2026-06-15T13:57:01.4988640Z         "unit": {
2026-06-15T13:57:01.4988822Z           "complete": true,
2026-06-15T13:57:01.4989079Z           "evidence": [
2026-06-15T13:57:01.4989265Z             {
2026-06-15T13:57:01.4989524Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.4989707Z               "line": 733
2026-06-15T13:57:01.4989874Z             },
2026-06-15T13:57:01.4990053Z             {
2026-06-15T13:57:01.4990268Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:57:01.4990454Z               "line": 161
2026-06-15T13:57:01.4990620Z             },
2026-06-15T13:57:01.4990793Z             {
2026-06-15T13:57:01.4991011Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:57:01.4991183Z               "line": 233
2026-06-15T13:57:01.4991350Z             }
2026-06-15T13:57:01.4991526Z           ]
2026-06-15T13:57:01.4991689Z         }
2026-06-15T13:57:01.4991864Z       }
2026-06-15T13:57:01.4992146Z     },
2026-06-15T13:57:01.4992309Z     {
2026-06-15T13:57:01.4992527Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-15T13:57:01.4993285Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-15T13:57:01.4993480Z       "requiredStages": [
2026-06-15T13:57:01.4993658Z         "impl",
2026-06-15T13:57:01.4993828Z         "unit"
2026-06-15T13:57:01.4993992Z       ],
2026-06-15T13:57:01.4994167Z       "stages": {
2026-06-15T13:57:01.4994443Z         "doc": {
2026-06-15T13:57:01.4994622Z           "complete": true,
2026-06-15T13:57:01.4994805Z           "evidence": [
2026-06-15T13:57:01.4994967Z             {
2026-06-15T13:57:01.4995179Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:57:01.4995357Z               "line": 220
2026-06-15T13:57:01.4995527Z             }
2026-06-15T13:57:01.4995690Z           ]
2026-06-15T13:57:01.4995866Z         },
2026-06-15T13:57:01.4996047Z         "impl": {
2026-06-15T13:57:01.4996229Z           "complete": true,
2026-06-15T13:57:01.4996409Z           "evidence": [
2026-06-15T13:57:01.4996582Z             {
2026-06-15T13:57:01.4996820Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.4996996Z               "line": 311
2026-06-15T13:57:01.4997174Z             },
2026-06-15T13:57:01.4997349Z             {
2026-06-15T13:57:01.4997569Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:57:01.4997753Z               "line": 257
2026-06-15T13:57:01.4997932Z             },
2026-06-15T13:57:01.4998104Z             {
2026-06-15T13:57:01.4998318Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:57:01.4998495Z               "line": 405
2026-06-15T13:57:01.4998680Z             },
2026-06-15T13:57:01.4998848Z             {
2026-06-15T13:57:01.4999129Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T13:57:01.4999300Z               "line": 77
2026-06-15T13:57:01.4999478Z             }
2026-06-15T13:57:01.4999653Z           ]
2026-06-15T13:57:01.4999830Z         },
2026-06-15T13:57:01.5000002Z         "int": {
2026-06-15T13:57:01.5000173Z           "complete": false,
2026-06-15T13:57:01.5000353Z           "evidence": []
2026-06-15T13:57:01.5000527Z         },
2026-06-15T13:57:01.5000704Z         "unit": {
2026-06-15T13:57:01.5000889Z           "complete": true,
2026-06-15T13:57:01.5001072Z           "evidence": [
2026-06-15T13:57:01.5001242Z             {
2026-06-15T13:57:01.5001467Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:57:01.5001644Z               "line": 478
2026-06-15T13:57:01.5001806Z             },
2026-06-15T13:57:01.5001983Z             {
2026-06-15T13:57:01.5002206Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:57:01.5002387Z               "line": 516
2026-06-15T13:57:01.5002569Z             },
2026-06-15T13:57:01.5002730Z             {
2026-06-15T13:57:01.5002956Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T13:57:01.5003135Z               "line": 166
2026-06-15T13:57:01.5003311Z             }
2026-06-15T13:57:01.5003478Z           ]
2026-06-15T13:57:01.5003654Z         }
2026-06-15T13:57:01.5003825Z       }
2026-06-15T13:57:01.5003993Z     },
2026-06-15T13:57:01.5004165Z     {
2026-06-15T13:57:01.5004388Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-15T13:57:01.5005361Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-15T13:57:01.5005560Z       "requiredStages": [
2026-06-15T13:57:01.5005734Z         "impl",
2026-06-15T13:57:01.5005912Z         "unit"
2026-06-15T13:57:01.5006073Z       ],
2026-06-15T13:57:01.5006255Z       "stages": {
2026-06-15T13:57:01.5006426Z         "doc": {
2026-06-15T13:57:01.5006616Z           "complete": false,
2026-06-15T13:57:01.5006912Z           "evidence": []
2026-06-15T13:57:01.5007080Z         },
2026-06-15T13:57:01.5007260Z         "impl": {
2026-06-15T13:57:01.5007438Z           "complete": true,
2026-06-15T13:57:01.5007623Z           "evidence": [
2026-06-15T13:57:01.5007786Z             {
2026-06-15T13:57:01.5008024Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T13:57:01.5008204Z               "line": 22
2026-06-15T13:57:01.5008375Z             },
2026-06-15T13:57:01.5008554Z             {
2026-06-15T13:57:01.5008770Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:57:01.5009141Z               "line": 487
2026-06-15T13:57:01.5009308Z             },
2026-06-15T13:57:01.5009479Z             {
2026-06-15T13:57:01.5009713Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T13:57:01.5009894Z               "line": 17
2026-06-15T13:57:01.5010070Z             },
2026-06-15T13:57:01.5010238Z             {
2026-06-15T13:57:01.5010456Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T13:57:01.5010634Z               "line": 147
2026-06-15T13:57:01.5010808Z             },
2026-06-15T13:57:01.5010985Z             {
2026-06-15T13:57:01.5011216Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.5011402Z               "line": 226
2026-06-15T13:57:01.5011574Z             },
2026-06-15T13:57:01.5011745Z             {
2026-06-15T13:57:01.5011965Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.5012151Z               "line": 251
2026-06-15T13:57:01.5012327Z             },
2026-06-15T13:57:01.5012504Z             {
2026-06-15T13:57:01.5012741Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.5012919Z               "line": 277
2026-06-15T13:57:01.5013095Z             },
2026-06-15T13:57:01.5013262Z             {
2026-06-15T13:57:01.5013492Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:57:01.5013675Z               "line": 124
2026-06-15T13:57:01.5013853Z             },
2026-06-15T13:57:01.5014033Z             {
2026-06-15T13:57:01.5014258Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:57:01.5014434Z               "line": 224
2026-06-15T13:57:01.5014597Z             }
2026-06-15T13:57:01.5014773Z           ]
2026-06-15T13:57:01.5014949Z         },
2026-06-15T13:57:01.5015122Z         "int": {
2026-06-15T13:57:01.5015311Z           "complete": false,
2026-06-15T13:57:01.5015493Z           "evidence": []
2026-06-15T13:57:01.5015669Z         },
2026-06-15T13:57:01.5015845Z         "unit": {
2026-06-15T13:57:01.5016035Z           "complete": true,
2026-06-15T13:57:01.5016218Z           "evidence": [
2026-06-15T13:57:01.5016405Z             {
2026-06-15T13:57:01.5016643Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T13:57:01.5016820Z               "line": 63
2026-06-15T13:57:01.5016991Z             },
2026-06-15T13:57:01.5017167Z             {
2026-06-15T13:57:01.5017392Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T13:57:01.5017582Z               "line": 73
2026-06-15T13:57:01.5017749Z             },
2026-06-15T13:57:01.5017921Z             {
2026-06-15T13:57:01.5018145Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T13:57:01.5018323Z               "line": 85
2026-06-15T13:57:01.5018493Z             },
2026-06-15T13:57:01.5018656Z             {
2026-06-15T13:57:01.5018883Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T13:57:01.5019110Z               "line": 346
2026-06-15T13:57:01.5019282Z             },
2026-06-15T13:57:01.5019457Z             {
2026-06-15T13:57:01.5019682Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T13:57:01.5019863Z               "line": 281
2026-06-15T13:57:01.5020025Z             },
2026-06-15T13:57:01.5020202Z             {
2026-06-15T13:57:01.5020416Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T13:57:01.5020593Z               "line": 322
2026-06-15T13:57:01.5020875Z             },
2026-06-15T13:57:01.5021055Z             {
2026-06-15T13:57:01.5021284Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T13:57:01.5021454Z               "line": 360
2026-06-15T13:57:01.5021629Z             },
2026-06-15T13:57:01.5021786Z             {
2026-06-15T13:57:01.5022028Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.5022206Z               "line": 688
2026-06-15T13:57:01.5022377Z             },
2026-06-15T13:57:01.5022559Z             {
2026-06-15T13:57:01.5022774Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:57:01.5023074Z               "line": 397
2026-06-15T13:57:01.5023240Z             },
2026-06-15T13:57:01.5023409Z             {
2026-06-15T13:57:01.5023636Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:57:01.5023817Z               "line": 440
2026-06-15T13:57:01.5023990Z             }
2026-06-15T13:57:01.5024151Z           ]
2026-06-15T13:57:01.5024316Z         }
2026-06-15T13:57:01.5024489Z       }
2026-06-15T13:57:01.5024660Z     },
2026-06-15T13:57:01.5024818Z     {
2026-06-15T13:57:01.5025028Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-15T13:57:01.5025423Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-15T13:57:01.5025604Z       "requiredStages": [
2026-06-15T13:57:01.5025785Z         "impl",
2026-06-15T13:57:01.5025949Z         "unit"
2026-06-15T13:57:01.5026123Z       ],
2026-06-15T13:57:01.5026297Z       "stages": {
2026-06-15T13:57:01.5026457Z         "doc": {
2026-06-15T13:57:01.5026652Z           "complete": false,
2026-06-15T13:57:01.5026831Z           "evidence": []
2026-06-15T13:57:01.5027008Z         },
2026-06-15T13:57:01.5027169Z         "impl": {
2026-06-15T13:57:01.5027351Z           "complete": true,
2026-06-15T13:57:01.5027527Z           "evidence": [
2026-06-15T13:57:01.5027695Z             {
2026-06-15T13:57:01.5027929Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T13:57:01.5028113Z               "line": 169
2026-06-15T13:57:01.5028286Z             }
2026-06-15T13:57:01.5028452Z           ]
2026-06-15T13:57:01.5028629Z         },
2026-06-15T13:57:01.5028796Z         "int": {
2026-06-15T13:57:01.5029043Z           "complete": true,
2026-06-15T13:57:01.5029226Z           "evidence": [
2026-06-15T13:57:01.5029414Z             {
2026-06-15T13:57:01.5029631Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-15T13:57:01.5029813Z               "line": 44
2026-06-15T13:57:01.5029989Z             },
2026-06-15T13:57:01.5030152Z             {
2026-06-15T13:57:01.5030379Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-15T13:57:01.5030557Z               "line": 66
2026-06-15T13:57:01.5030728Z             }
2026-06-15T13:57:01.5030900Z           ]
2026-06-15T13:57:01.5031072Z         },
2026-06-15T13:57:01.5031243Z         "unit": {
2026-06-15T13:57:01.5031421Z           "complete": true,
2026-06-15T13:57:01.5031596Z           "evidence": [
2026-06-15T13:57:01.5031769Z             {
2026-06-15T13:57:01.5031976Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T13:57:01.5032161Z               "line": 186
2026-06-15T13:57:01.5032327Z             },
2026-06-15T13:57:01.5032504Z             {
2026-06-15T13:57:01.5032718Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T13:57:01.5032904Z               "line": 238
2026-06-15T13:57:01.5033076Z             },
2026-06-15T13:57:01.5033242Z             {
2026-06-15T13:57:01.5033452Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T13:57:01.5033634Z               "line": 266
2026-06-15T13:57:01.5033805Z             }
2026-06-15T13:57:01.5033969Z           ]
2026-06-15T13:57:01.5034139Z         }
2026-06-15T13:57:01.5034316Z       }
2026-06-15T13:57:01.5034482Z     },
2026-06-15T13:57:01.5034655Z     {
2026-06-15T13:57:01.5034881Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-15T13:57:01.5035617Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-15T13:57:01.5035941Z       "requiredStages": [
2026-06-15T13:57:01.5036116Z         "impl",
2026-06-15T13:57:01.5036294Z         "unit",
2026-06-15T13:57:01.5036465Z         "int"
2026-06-15T13:57:01.5036641Z       ],
2026-06-15T13:57:01.5036818Z       "stages": {
2026-06-15T13:57:01.5036994Z         "doc": {
2026-06-15T13:57:01.5037188Z           "complete": false,
2026-06-15T13:57:01.5037367Z           "evidence": []
2026-06-15T13:57:01.5037530Z         },
2026-06-15T13:57:01.5037806Z         "impl": {
2026-06-15T13:57:01.5037996Z           "complete": true,
2026-06-15T13:57:01.5038169Z           "evidence": [
2026-06-15T13:57:01.5038339Z             {
2026-06-15T13:57:01.5038579Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.5038756Z               "line": 152
2026-06-15T13:57:01.5038927Z             },
2026-06-15T13:57:01.5039166Z             {
2026-06-15T13:57:01.5039404Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.5039570Z               "line": 176
2026-06-15T13:57:01.5039743Z             },
2026-06-15T13:57:01.5039922Z             {
2026-06-15T13:57:01.5040136Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:57:01.5040315Z               "line": 79
2026-06-15T13:57:01.5040484Z             },
2026-06-15T13:57:01.5040659Z             {
2026-06-15T13:57:01.5040859Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:57:01.5041037Z               "line": 52
2026-06-15T13:57:01.5041221Z             },
2026-06-15T13:57:01.5041389Z             {
2026-06-15T13:57:01.5041608Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.5041784Z               "line": 164
2026-06-15T13:57:01.5041947Z             },
2026-06-15T13:57:01.5042108Z             {
2026-06-15T13:57:01.5042334Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T13:57:01.5042508Z               "line": 27
2026-06-15T13:57:01.5042693Z             },
2026-06-15T13:57:01.5042862Z             {
2026-06-15T13:57:01.5043092Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T13:57:01.5043270Z               "line": 79
2026-06-15T13:57:01.5043440Z             },
2026-06-15T13:57:01.5043617Z             {
2026-06-15T13:57:01.5043836Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T13:57:01.5044017Z               "line": 102
2026-06-15T13:57:01.5044189Z             },
2026-06-15T13:57:01.5044351Z             {
2026-06-15T13:57:01.5044580Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:57:01.5044761Z               "line": 116
2026-06-15T13:57:01.5044937Z             }
2026-06-15T13:57:01.5045100Z           ]
2026-06-15T13:57:01.5045262Z         },
2026-06-15T13:57:01.5045437Z         "int": {
2026-06-15T13:57:01.5045614Z           "complete": true,
2026-06-15T13:57:01.5045800Z           "evidence": [
2026-06-15T13:57:01.5045966Z             {
2026-06-15T13:57:01.5046215Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T13:57:01.5046396Z               "line": 38
2026-06-15T13:57:01.5046558Z             }
2026-06-15T13:57:01.5046734Z           ]
2026-06-15T13:57:01.5046896Z         },
2026-06-15T13:57:01.5047074Z         "unit": {
2026-06-15T13:57:01.5047258Z           "complete": true,
2026-06-15T13:57:01.5047441Z           "evidence": [
2026-06-15T13:57:01.5047610Z             {
2026-06-15T13:57:01.5047838Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.5048023Z               "line": 628
2026-06-15T13:57:01.5048204Z             },
2026-06-15T13:57:01.5048381Z             {
2026-06-15T13:57:01.5048599Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.5051653Z               "line": 378
2026-06-15T13:57:01.5051844Z             },
2026-06-15T13:57:01.5052005Z             {
2026-06-15T13:57:01.5052245Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T13:57:01.5052579Z               "line": 124
2026-06-15T13:57:01.5052754Z             },
2026-06-15T13:57:01.5052908Z             {
2026-06-15T13:57:01.5053140Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T13:57:01.5053318Z               "line": 143
2026-06-15T13:57:01.5053476Z             },
2026-06-15T13:57:01.5053642Z             {
2026-06-15T13:57:01.5053867Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T13:57:01.5054043Z               "line": 160
2026-06-15T13:57:01.5054201Z             },
2026-06-15T13:57:01.5054386Z             {
2026-06-15T13:57:01.5054954Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T13:57:01.5055122Z               "line": 187
2026-06-15T13:57:01.5055287Z             },
2026-06-15T13:57:01.5055437Z             {
2026-06-15T13:57:01.5055655Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T13:57:01.5055845Z               "line": 206
2026-06-15T13:57:01.5056012Z             },
2026-06-15T13:57:01.5056174Z             {
2026-06-15T13:57:01.5056403Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:57:01.5056588Z               "line": 229
2026-06-15T13:57:01.5056746Z             }
2026-06-15T13:57:01.5056917Z           ]
2026-06-15T13:57:01.5057085Z         }
2026-06-15T13:57:01.5057241Z       }
2026-06-15T13:57:01.5057418Z     },
2026-06-15T13:57:01.5057575Z     {
2026-06-15T13:57:01.5057795Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-15T13:57:01.5058902Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-15T13:57:01.5059193Z       "requiredStages": [
2026-06-15T13:57:01.5059360Z         "impl",
2026-06-15T13:57:01.5059518Z         "unit"
2026-06-15T13:57:01.5059694Z       ],
2026-06-15T13:57:01.5059856Z       "stages": {
2026-06-15T13:57:01.5060028Z         "doc": {
2026-06-15T13:57:01.5060215Z           "complete": false,
2026-06-15T13:57:01.5060391Z           "evidence": []
2026-06-15T13:57:01.5060558Z         },
2026-06-15T13:57:01.5060715Z         "impl": {
2026-06-15T13:57:01.5060897Z           "complete": true,
2026-06-15T13:57:01.5061061Z           "evidence": [
2026-06-15T13:57:01.5061219Z             {
2026-06-15T13:57:01.5061450Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.5061632Z               "line": 621
2026-06-15T13:57:01.5061794Z             },
2026-06-15T13:57:01.5061951Z             {
2026-06-15T13:57:01.5062176Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.5062346Z               "line": 834
2026-06-15T13:57:01.5062528Z             }
2026-06-15T13:57:01.5062685Z           ]
2026-06-15T13:57:01.5062843Z         },
2026-06-15T13:57:01.5063005Z         "int": {
2026-06-15T13:57:01.5063186Z           "complete": false,
2026-06-15T13:57:01.5063368Z           "evidence": []
2026-06-15T13:57:01.5063538Z         },
2026-06-15T13:57:01.5063709Z         "unit": {
2026-06-15T13:57:01.5063888Z           "complete": true,
2026-06-15T13:57:01.5064069Z           "evidence": [
2026-06-15T13:57:01.5064240Z             {
2026-06-15T13:57:01.5064475Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T13:57:01.5064641Z               "line": 161
2026-06-15T13:57:01.5064804Z             }
2026-06-15T13:57:01.5064966Z           ]
2026-06-15T13:57:01.5065123Z         }
2026-06-15T13:57:01.5065300Z       }
2026-06-15T13:57:01.5065457Z     },
2026-06-15T13:57:01.5065630Z     {
2026-06-15T13:57:01.5065833Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-15T13:57:01.5066167Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-15T13:57:01.5066350Z       "requiredStages": [
2026-06-15T13:57:01.5066519Z         "impl",
2026-06-15T13:57:01.5066692Z         "unit"
2026-06-15T13:57:01.5066857Z       ],
2026-06-15T13:57:01.5067030Z       "stages": {
2026-06-15T13:57:01.5067316Z         "doc": {
2026-06-15T13:57:01.5067496Z           "complete": false,
2026-06-15T13:57:01.5067683Z           "evidence": []
2026-06-15T13:57:01.5067840Z         },
2026-06-15T13:57:01.5068016Z         "impl": {
2026-06-15T13:57:01.5068194Z           "complete": true,
2026-06-15T13:57:01.5068374Z           "evidence": [
2026-06-15T13:57:01.5068543Z             {
2026-06-15T13:57:01.5068769Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.5069010Z               "line": 40
2026-06-15T13:57:01.5069177Z             },
2026-06-15T13:57:01.5069453Z             {
2026-06-15T13:57:01.5069677Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.5069854Z               "line": 103
2026-06-15T13:57:01.5070030Z             },
2026-06-15T13:57:01.5070197Z             {
2026-06-15T13:57:01.5070416Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.5070593Z               "line": 218
2026-06-15T13:57:01.5070766Z             },
2026-06-15T13:57:01.5070941Z             {
2026-06-15T13:57:01.5071161Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.5071337Z               "line": 323
2026-06-15T13:57:01.5071499Z             }
2026-06-15T13:57:01.5071659Z           ]
2026-06-15T13:57:01.5071816Z         },
2026-06-15T13:57:01.5071991Z         "int": {
2026-06-15T13:57:01.5072178Z           "complete": false,
2026-06-15T13:57:01.5072354Z           "evidence": []
2026-06-15T13:57:01.5072525Z         },
2026-06-15T13:57:01.5072698Z         "unit": {
2026-06-15T13:57:01.5072878Z           "complete": true,
2026-06-15T13:57:01.5073060Z           "evidence": [
2026-06-15T13:57:01.5073235Z             {
2026-06-15T13:57:01.5073460Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.5073633Z               "line": 361
2026-06-15T13:57:01.5073807Z             },
2026-06-15T13:57:01.5073967Z             {
2026-06-15T13:57:01.5074193Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.5074369Z               "line": 433
2026-06-15T13:57:01.5074539Z             },
2026-06-15T13:57:01.5074702Z             {
2026-06-15T13:57:01.5074921Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.5075097Z               "line": 496
2026-06-15T13:57:01.5075264Z             },
2026-06-15T13:57:01.5075440Z             {
2026-06-15T13:57:01.5075655Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.5075831Z               "line": 517
2026-06-15T13:57:01.5075998Z             }
2026-06-15T13:57:01.5076165Z           ]
2026-06-15T13:57:01.5076345Z         }
2026-06-15T13:57:01.5076510Z       }
2026-06-15T13:57:01.5076684Z     },
2026-06-15T13:57:01.5076843Z     {
2026-06-15T13:57:01.5077074Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-15T13:57:01.5077313Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-15T13:57:01.5077499Z       "requiredStages": [
2026-06-15T13:57:01.5077684Z         "impl",
2026-06-15T13:57:01.5077848Z         "unit"
2026-06-15T13:57:01.5078023Z       ],
2026-06-15T13:57:01.5078196Z       "stages": {
2026-06-15T13:57:01.5078357Z         "doc": {
2026-06-15T13:57:01.5078543Z           "complete": false,
2026-06-15T13:57:01.5078720Z           "evidence": []
2026-06-15T13:57:01.5078895Z         },
2026-06-15T13:57:01.5079136Z         "impl": {
2026-06-15T13:57:01.5079319Z           "complete": true,
2026-06-15T13:57:01.5079499Z           "evidence": [
2026-06-15T13:57:01.5079674Z             {
2026-06-15T13:57:01.5079889Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.5080066Z               "line": 116
2026-06-15T13:57:01.5080237Z             },
2026-06-15T13:57:01.5080400Z             {
2026-06-15T13:57:01.5080623Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.5080805Z               "line": 211
2026-06-15T13:57:01.5080972Z             }
2026-06-15T13:57:01.5081144Z           ]
2026-06-15T13:57:01.5081301Z         },
2026-06-15T13:57:01.5081482Z         "int": {
2026-06-15T13:57:01.5081777Z           "complete": false,
2026-06-15T13:57:01.5081955Z           "evidence": []
2026-06-15T13:57:01.5082120Z         },
2026-06-15T13:57:01.5082287Z         "unit": {
2026-06-15T13:57:01.5082466Z           "complete": true,
2026-06-15T13:57:01.5082642Z           "evidence": [
2026-06-15T13:57:01.5082823Z             {
2026-06-15T13:57:01.5083038Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.5083224Z               "line": 388
2026-06-15T13:57:01.5083391Z             },
2026-06-15T13:57:01.5083553Z             {
2026-06-15T13:57:01.5083878Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.5084058Z               "line": 469
2026-06-15T13:57:01.5084235Z             }
2026-06-15T13:57:01.5084397Z           ]
2026-06-15T13:57:01.5084569Z         }
2026-06-15T13:57:01.5084744Z       }
2026-06-15T13:57:01.5084906Z     },
2026-06-15T13:57:01.5085079Z     {
2026-06-15T13:57:01.5085309Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-15T13:57:01.5087164Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-15T13:57:01.5087350Z       "requiredStages": [
2026-06-15T13:57:01.5087521Z         "impl",
2026-06-15T13:57:01.5087687Z         "unit"
2026-06-15T13:57:01.5087855Z       ],
2026-06-15T13:57:01.5088050Z       "stages": {
2026-06-15T13:57:01.5088221Z         "doc": {
2026-06-15T13:57:01.5088413Z           "complete": true,
2026-06-15T13:57:01.5088588Z           "evidence": [
2026-06-15T13:57:01.5088756Z             {
2026-06-15T13:57:01.5089038Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:57:01.5089208Z               "line": 206
2026-06-15T13:57:01.5089381Z             }
2026-06-15T13:57:01.5089551Z           ]
2026-06-15T13:57:01.5089729Z         },
2026-06-15T13:57:01.5089903Z         "impl": {
2026-06-15T13:57:01.5090083Z           "complete": true,
2026-06-15T13:57:01.5090259Z           "evidence": [
2026-06-15T13:57:01.5090426Z             {
2026-06-15T13:57:01.5090664Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.5090835Z               "line": 593
2026-06-15T13:57:01.5091007Z             },
2026-06-15T13:57:01.5091183Z             {
2026-06-15T13:57:01.5091398Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.5091585Z               "line": 685
2026-06-15T13:57:01.5091741Z             },
2026-06-15T13:57:01.5091915Z             {
2026-06-15T13:57:01.5092142Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.5092323Z               "line": 183
2026-06-15T13:57:01.5092496Z             }
2026-06-15T13:57:01.5092656Z           ]
2026-06-15T13:57:01.5092827Z         },
2026-06-15T13:57:01.5092997Z         "int": {
2026-06-15T13:57:01.5093193Z           "complete": false,
2026-06-15T13:57:01.5093397Z           "evidence": []
2026-06-15T13:57:01.5093594Z         },
2026-06-15T13:57:01.5093770Z         "unit": {
2026-06-15T13:57:01.5093951Z           "complete": true,
2026-06-15T13:57:01.5094128Z           "evidence": [
2026-06-15T13:57:01.5094285Z             {
2026-06-15T13:57:01.5094509Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.5094680Z               "line": 734
2026-06-15T13:57:01.5094852Z             },
2026-06-15T13:57:01.5095024Z             {
2026-06-15T13:57:01.5095275Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T13:57:01.5095456Z               "line": 44
2026-06-15T13:57:01.5095616Z             },
2026-06-15T13:57:01.5095794Z             {
2026-06-15T13:57:01.5096031Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-15T13:57:01.5096217Z               "line": 52
2026-06-15T13:57:01.5096385Z             },
2026-06-15T13:57:01.5096704Z             {
2026-06-15T13:57:01.5096922Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T13:57:01.5097095Z               "line": 57
2026-06-15T13:57:01.5097266Z             },
2026-06-15T13:57:01.5097428Z             {
2026-06-15T13:57:01.5097663Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-15T13:57:01.5097848Z               "line": 54
2026-06-15T13:57:01.5098021Z             }
2026-06-15T13:57:01.5098194Z           ]
2026-06-15T13:57:01.5098344Z         }
2026-06-15T13:57:01.5098523Z       }
2026-06-15T13:57:01.5098682Z     },
2026-06-15T13:57:01.5099034Z     {
2026-06-15T13:57:01.5099259Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-15T13:57:01.5099655Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-15T13:57:01.5099831Z       "requiredStages": [
2026-06-15T13:57:01.5099993Z         "impl",
2026-06-15T13:57:01.5100169Z         "unit"
2026-06-15T13:57:01.5100336Z       ],
2026-06-15T13:57:01.5100516Z       "stages": {
2026-06-15T13:57:01.5100690Z         "doc": {
2026-06-15T13:57:01.5100862Z           "complete": false,
2026-06-15T13:57:01.5101038Z           "evidence": []
2026-06-15T13:57:01.5101196Z         },
2026-06-15T13:57:01.5101362Z         "impl": {
2026-06-15T13:57:01.5101544Z           "complete": true,
2026-06-15T13:57:01.5101729Z           "evidence": [
2026-06-15T13:57:01.5101896Z             {
2026-06-15T13:57:01.5102107Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:57:01.5102288Z               "line": 26
2026-06-15T13:57:01.5102460Z             },
2026-06-15T13:57:01.5102626Z             {
2026-06-15T13:57:01.5102846Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:57:01.5103027Z               "line": 135
2026-06-15T13:57:01.5103198Z             },
2026-06-15T13:57:01.5103374Z             {
2026-06-15T13:57:01.5103614Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T13:57:01.5103777Z               "line": 26
2026-06-15T13:57:01.5103958Z             },
2026-06-15T13:57:01.5104120Z             {
2026-06-15T13:57:01.5104359Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T13:57:01.5104539Z               "line": 237
2026-06-15T13:57:01.5104707Z             }
2026-06-15T13:57:01.5104883Z           ]
2026-06-15T13:57:01.5105046Z         },
2026-06-15T13:57:01.5105212Z         "int": {
2026-06-15T13:57:01.5105394Z           "complete": false,
2026-06-15T13:57:01.5105574Z           "evidence": []
2026-06-15T13:57:01.5105737Z         },
2026-06-15T13:57:01.5105911Z         "unit": {
2026-06-15T13:57:01.5106105Z           "complete": true,
2026-06-15T13:57:01.5106276Z           "evidence": [
2026-06-15T13:57:01.5106443Z             {
2026-06-15T13:57:01.5106663Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:57:01.5106843Z               "line": 161
2026-06-15T13:57:01.5107011Z             },
2026-06-15T13:57:01.5107177Z             {
2026-06-15T13:57:01.5107397Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:57:01.5107575Z               "line": 170
2026-06-15T13:57:01.5107741Z             },
2026-06-15T13:57:01.5107908Z             {
2026-06-15T13:57:01.5108117Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:57:01.5108298Z               "line": 179
2026-06-15T13:57:01.5108466Z             },
2026-06-15T13:57:01.5108627Z             {
2026-06-15T13:57:01.5108856Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:57:01.5109131Z               "line": 190
2026-06-15T13:57:01.5109299Z             },
2026-06-15T13:57:01.5109466Z             {
2026-06-15T13:57:01.5109694Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:57:01.5109866Z               "line": 199
2026-06-15T13:57:01.5110042Z             },
2026-06-15T13:57:01.5110210Z             {
2026-06-15T13:57:01.5110430Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:57:01.5110609Z               "line": 216
2026-06-15T13:57:01.5110891Z             },
2026-06-15T13:57:01.5111071Z             {
2026-06-15T13:57:01.5111293Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:57:01.5111475Z               "line": 242
2026-06-15T13:57:01.5111650Z             },
2026-06-15T13:57:01.5111818Z             {
2026-06-15T13:57:01.5112033Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:57:01.5112213Z               "line": 295
2026-06-15T13:57:01.5112386Z             },
2026-06-15T13:57:01.5112552Z             {
2026-06-15T13:57:01.5112776Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:57:01.5113073Z               "line": 244
2026-06-15T13:57:01.5113248Z             },
2026-06-15T13:57:01.5113425Z             {
2026-06-15T13:57:01.5113650Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T13:57:01.5113824Z               "line": 265
2026-06-15T13:57:01.5113991Z             },
2026-06-15T13:57:01.5114165Z             {
2026-06-15T13:57:01.5114390Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T13:57:01.5114575Z               "line": 293
2026-06-15T13:57:01.5114743Z             },
2026-06-15T13:57:01.5114914Z             {
2026-06-15T13:57:01.5115161Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T13:57:01.5115329Z               "line": 317
2026-06-15T13:57:01.5115500Z             },
2026-06-15T13:57:01.5115667Z             {
2026-06-15T13:57:01.5115902Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T13:57:01.5116087Z               "line": 327
2026-06-15T13:57:01.5116264Z             },
2026-06-15T13:57:01.5116433Z             {
2026-06-15T13:57:01.5116674Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:57:01.5116856Z               "line": 540
2026-06-15T13:57:01.5117027Z             }
2026-06-15T13:57:01.5117200Z           ]
2026-06-15T13:57:01.5117366Z         }
2026-06-15T13:57:01.5117529Z       }
2026-06-15T13:57:01.5117699Z     },
2026-06-15T13:57:01.5117862Z     {
2026-06-15T13:57:01.5118086Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-15T13:57:01.5118358Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-15T13:57:01.5118548Z       "requiredStages": [
2026-06-15T13:57:01.5118731Z         "impl",
2026-06-15T13:57:01.5118896Z         "unit"
2026-06-15T13:57:01.5119145Z       ],
2026-06-15T13:57:01.5119324Z       "stages": {
2026-06-15T13:57:01.5119502Z         "doc": {
2026-06-15T13:57:01.5119692Z           "complete": false,
2026-06-15T13:57:01.5119873Z           "evidence": []
2026-06-15T13:57:01.5120060Z         },
2026-06-15T13:57:01.5120226Z         "impl": {
2026-06-15T13:57:01.5120412Z           "complete": true,
2026-06-15T13:57:01.5120597Z           "evidence": [
2026-06-15T13:57:01.5120775Z             {
2026-06-15T13:57:01.5120985Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T13:57:01.5121169Z               "line": 25
2026-06-15T13:57:01.5121352Z             },
2026-06-15T13:57:01.5121522Z             {
2026-06-15T13:57:01.5121759Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:57:01.5121944Z               "line": 26
2026-06-15T13:57:01.5122116Z             },
2026-06-15T13:57:01.5122273Z             {
2026-06-15T13:57:01.5122492Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:57:01.5122679Z               "line": 159
2026-06-15T13:57:01.5122849Z             }
2026-06-15T13:57:01.5123031Z           ]
2026-06-15T13:57:01.5123198Z         },
2026-06-15T13:57:01.5123374Z         "int": {
2026-06-15T13:57:01.5123557Z           "complete": false,
2026-06-15T13:57:01.5123752Z           "evidence": []
2026-06-15T13:57:01.5123933Z         },
2026-06-15T13:57:01.5124094Z         "unit": {
2026-06-15T13:57:01.5124286Z           "complete": true,
2026-06-15T13:57:01.5124460Z           "evidence": [
2026-06-15T13:57:01.5124626Z             {
2026-06-15T13:57:01.5124835Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T13:57:01.5125016Z               "line": 188
2026-06-15T13:57:01.5125312Z             },
2026-06-15T13:57:01.5125484Z             {
2026-06-15T13:57:01.5125707Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T13:57:01.5125884Z               "line": 240
2026-06-15T13:57:01.5126065Z             },
2026-06-15T13:57:01.5126236Z             {
2026-06-15T13:57:01.5126467Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:57:01.5126651Z               "line": 186
2026-06-15T13:57:01.5126820Z             }
2026-06-15T13:57:01.5126998Z           ]
2026-06-15T13:57:01.5127161Z         }
2026-06-15T13:57:01.5127440Z       }
2026-06-15T13:57:01.5127611Z     },
2026-06-15T13:57:01.5127783Z     {
2026-06-15T13:57:01.5127997Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-15T13:57:01.5128293Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-15T13:57:01.5128484Z       "requiredStages": [
2026-06-15T13:57:01.5128641Z         "impl",
2026-06-15T13:57:01.5128823Z         "unit"
2026-06-15T13:57:01.5129085Z       ],
2026-06-15T13:57:01.5129261Z       "stages": {
2026-06-15T13:57:01.5129432Z         "doc": {
2026-06-15T13:57:01.5129620Z           "complete": false,
2026-06-15T13:57:01.5129804Z           "evidence": []
2026-06-15T13:57:01.5129961Z         },
2026-06-15T13:57:01.5130138Z         "impl": {
2026-06-15T13:57:01.5130319Z           "complete": true,
2026-06-15T13:57:01.5130495Z           "evidence": [
2026-06-15T13:57:01.5130658Z             {
2026-06-15T13:57:01.5130872Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:57:01.5131044Z               "line": 48
2026-06-15T13:57:01.5131225Z             },
2026-06-15T13:57:01.5131406Z             {
2026-06-15T13:57:01.5131635Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:57:01.5131811Z               "line": 55
2026-06-15T13:57:01.5131983Z             },
2026-06-15T13:57:01.5132148Z             {
2026-06-15T13:57:01.5132380Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:57:01.5132557Z               "line": 74
2026-06-15T13:57:01.5132733Z             },
2026-06-15T13:57:01.5132901Z             {
2026-06-15T13:57:01.5133104Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:57:01.5133291Z               "line": 91
2026-06-15T13:57:01.5133463Z             }
2026-06-15T13:57:01.5133639Z           ]
2026-06-15T13:57:01.5133807Z         },
2026-06-15T13:57:01.5133977Z         "int": {
2026-06-15T13:57:01.5134164Z           "complete": false,
2026-06-15T13:57:01.5134340Z           "evidence": []
2026-06-15T13:57:01.5134517Z         },
2026-06-15T13:57:01.5134688Z         "unit": {
2026-06-15T13:57:01.5134869Z           "complete": true,
2026-06-15T13:57:01.5135039Z           "evidence": [
2026-06-15T13:57:01.5135205Z             {
2026-06-15T13:57:01.5135428Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:57:01.5135609Z               "line": 149
2026-06-15T13:57:01.5135782Z             },
2026-06-15T13:57:01.5135947Z             {
2026-06-15T13:57:01.5136183Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:57:01.5136349Z               "line": 166
2026-06-15T13:57:01.5136516Z             },
2026-06-15T13:57:01.5136693Z             {
2026-06-15T13:57:01.5136906Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:57:01.5137093Z               "line": 176
2026-06-15T13:57:01.5137265Z             },
2026-06-15T13:57:01.5137441Z             {
2026-06-15T13:57:01.5137659Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:57:01.5137833Z               "line": 194
2026-06-15T13:57:01.5138010Z             },
2026-06-15T13:57:01.5138185Z             {
2026-06-15T13:57:01.5138406Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:57:01.5138577Z               "line": 207
2026-06-15T13:57:01.5138758Z             }
2026-06-15T13:57:01.5138921Z           ]
2026-06-15T13:57:01.5139158Z         }
2026-06-15T13:57:01.5139363Z       }
2026-06-15T13:57:01.5139536Z     },
2026-06-15T13:57:01.5139831Z     {
2026-06-15T13:57:01.5140040Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-15T13:57:01.5140393Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-15T13:57:01.5140579Z       "requiredStages": [
2026-06-15T13:57:01.5140764Z         "impl",
2026-06-15T13:57:01.5140932Z         "unit"
2026-06-15T13:57:01.5141107Z       ],
2026-06-15T13:57:01.5141285Z       "stages": {
2026-06-15T13:57:01.5141456Z         "doc": {
2026-06-15T13:57:01.5141647Z           "complete": false,
2026-06-15T13:57:01.5141829Z           "evidence": []
2026-06-15T13:57:01.5142139Z         },
2026-06-15T13:57:01.5142319Z         "impl": {
2026-06-15T13:57:01.5142492Z           "complete": true,
2026-06-15T13:57:01.5142680Z           "evidence": [
2026-06-15T13:57:01.5142846Z             {
2026-06-15T13:57:01.5143093Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.5143265Z               "line": 416
2026-06-15T13:57:01.5143437Z             },
2026-06-15T13:57:01.5143622Z             {
2026-06-15T13:57:01.5143837Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:57:01.5144023Z               "line": 26
2026-06-15T13:57:01.5144190Z             }
2026-06-15T13:57:01.5144362Z           ]
2026-06-15T13:57:01.5144533Z         },
2026-06-15T13:57:01.5144710Z         "int": {
2026-06-15T13:57:01.5144886Z           "complete": false,
2026-06-15T13:57:01.5145058Z           "evidence": []
2026-06-15T13:57:01.5145234Z         },
2026-06-15T13:57:01.5145406Z         "unit": {
2026-06-15T13:57:01.5145600Z           "complete": true,
2026-06-15T13:57:01.5145784Z           "evidence": [
2026-06-15T13:57:01.5145955Z             {
2026-06-15T13:57:01.5146183Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:57:01.5146361Z               "line": 150
2026-06-15T13:57:01.5146541Z             },
2026-06-15T13:57:01.5146709Z             {
2026-06-15T13:57:01.5146938Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:57:01.5147128Z               "line": 208
2026-06-15T13:57:01.5147291Z             }
2026-06-15T13:57:01.5147466Z           ]
2026-06-15T13:57:01.5147644Z         }
2026-06-15T13:57:01.5147820Z       }
2026-06-15T13:57:01.5147992Z     },
2026-06-15T13:57:01.5148156Z     {
2026-06-15T13:57:01.5148374Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-15T13:57:01.5150687Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-15T13:57:01.5150905Z       "requiredStages": [
2026-06-15T13:57:01.5151072Z         "doc",
2026-06-15T13:57:01.5151243Z         "impl",
2026-06-15T13:57:01.5151406Z         "unit"
2026-06-15T13:57:01.5151586Z       ],
2026-06-15T13:57:01.5151764Z       "stages": {
2026-06-15T13:57:01.5151934Z         "doc": {
2026-06-15T13:57:01.5152121Z           "complete": true,
2026-06-15T13:57:01.5152288Z           "evidence": [
2026-06-15T13:57:01.5152455Z             {
2026-06-15T13:57:01.5152665Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:57:01.5152850Z               "line": 214
2026-06-15T13:57:01.5153024Z             }
2026-06-15T13:57:01.5153193Z           ]
2026-06-15T13:57:01.5153369Z         },
2026-06-15T13:57:01.5153539Z         "impl": {
2026-06-15T13:57:01.5153725Z           "complete": true,
2026-06-15T13:57:01.5153915Z           "evidence": [
2026-06-15T13:57:01.5154083Z             {
2026-06-15T13:57:01.5154317Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.5154492Z               "line": 54
2026-06-15T13:57:01.5154659Z             },
2026-06-15T13:57:01.5154830Z             {
2026-06-15T13:57:01.5155065Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.5155369Z               "line": 511
2026-06-15T13:57:01.5155552Z             },
2026-06-15T13:57:01.5155727Z             {
2026-06-15T13:57:01.5155952Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:57:01.5156140Z               "line": 36
2026-06-15T13:57:01.5156820Z             },
2026-06-15T13:57:01.5156988Z             {
2026-06-15T13:57:01.5157226Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:57:01.5157406Z               "line": 59
2026-06-15T13:57:01.5157574Z             },
2026-06-15T13:57:01.5157745Z             {
2026-06-15T13:57:01.5158133Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:57:01.5158308Z               "line": 83
2026-06-15T13:57:01.5158476Z             },
2026-06-15T13:57:01.5158641Z             {
2026-06-15T13:57:01.5158864Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:57:01.5159130Z               "line": 140
2026-06-15T13:57:01.5159291Z             },
2026-06-15T13:57:01.5159474Z             {
2026-06-15T13:57:01.5159702Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:57:01.5159884Z               "line": 159
2026-06-15T13:57:01.5160051Z             },
2026-06-15T13:57:01.5160222Z             {
2026-06-15T13:57:01.5160461Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:57:01.5160632Z               "line": 384
2026-06-15T13:57:01.5160803Z             },
2026-06-15T13:57:01.5160966Z             {
2026-06-15T13:57:01.5161204Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:57:01.5161396Z               "line": 526
2026-06-15T13:57:01.5161560Z             },
2026-06-15T13:57:01.5161738Z             {
2026-06-15T13:57:01.5161957Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:57:01.5162142Z               "line": 572
2026-06-15T13:57:01.5162310Z             },
2026-06-15T13:57:01.5162485Z             {
2026-06-15T13:57:01.5162710Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.5162872Z               "line": 300
2026-06-15T13:57:01.5163038Z             },
2026-06-15T13:57:01.5163211Z             {
2026-06-15T13:57:01.5163425Z               "path": "crates/spt/src/main.rs",
2026-06-15T13:57:01.5163593Z               "line": 41
2026-06-15T13:57:01.5163758Z             }
2026-06-15T13:57:01.5163929Z           ]
2026-06-15T13:57:01.5164099Z         },
2026-06-15T13:57:01.5164266Z         "int": {
2026-06-15T13:57:01.5164451Z           "complete": false,
2026-06-15T13:57:01.5164633Z           "evidence": []
2026-06-15T13:57:01.5164804Z         },
2026-06-15T13:57:01.5164981Z         "unit": {
2026-06-15T13:57:01.5165163Z           "complete": true,
2026-06-15T13:57:01.5165333Z           "evidence": [
2026-06-15T13:57:01.5165511Z             {
2026-06-15T13:57:01.5165729Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:57:01.5165905Z               "line": 785
2026-06-15T13:57:01.5166073Z             },
2026-06-15T13:57:01.5166253Z             {
2026-06-15T13:57:01.5166484Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:57:01.5166653Z               "line": 826
2026-06-15T13:57:01.5166834Z             },
2026-06-15T13:57:01.5166998Z             {
2026-06-15T13:57:01.5167228Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:57:01.5167400Z               "line": 900
2026-06-15T13:57:01.5167571Z             }
2026-06-15T13:57:01.5167739Z           ]
2026-06-15T13:57:01.5167909Z         }
2026-06-15T13:57:01.5168068Z       }
2026-06-15T13:57:01.5168234Z     },
2026-06-15T13:57:01.5168416Z     {
2026-06-15T13:57:01.5168635Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-15T13:57:01.5171631Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-15T13:57:01.5171951Z       "requiredStages": [
2026-06-15T13:57:01.5172125Z         "impl",
2026-06-15T13:57:01.5172293Z         "unit"
2026-06-15T13:57:01.5172459Z       ],
2026-06-15T13:57:01.5172631Z       "stages": {
2026-06-15T13:57:01.5172797Z         "doc": {
2026-06-15T13:57:01.5173098Z           "complete": false,
2026-06-15T13:57:01.5173275Z           "evidence": []
2026-06-15T13:57:01.5173446Z         },
2026-06-15T13:57:01.5173617Z         "impl": {
2026-06-15T13:57:01.5173805Z           "complete": true,
2026-06-15T13:57:01.5173975Z           "evidence": [
2026-06-15T13:57:01.5174148Z             {
2026-06-15T13:57:01.5174375Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:57:01.5174555Z               "line": 31
2026-06-15T13:57:01.5174725Z             }
2026-06-15T13:57:01.5174893Z           ]
2026-06-15T13:57:01.5175064Z         },
2026-06-15T13:57:01.5175236Z         "int": {
2026-06-15T13:57:01.5175418Z           "complete": false,
2026-06-15T13:57:01.5175588Z           "evidence": []
2026-06-15T13:57:01.5175756Z         },
2026-06-15T13:57:01.5175926Z         "unit": {
2026-06-15T13:57:01.5176114Z           "complete": true,
2026-06-15T13:57:01.5176299Z           "evidence": [
2026-06-15T13:57:01.5176466Z             {
2026-06-15T13:57:01.5176706Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:57:01.5176885Z               "line": 181
2026-06-15T13:57:01.5177059Z             }
2026-06-15T13:57:01.5177219Z           ]
2026-06-15T13:57:01.5177395Z         }
2026-06-15T13:57:01.5177554Z       }
2026-06-15T13:57:01.5177727Z     },
2026-06-15T13:57:01.5177892Z     {
2026-06-15T13:57:01.5178108Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-15T13:57:01.5178404Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-15T13:57:01.5178590Z       "requiredStages": [
2026-06-15T13:57:01.5178770Z         "impl",
2026-06-15T13:57:01.5179000Z         "unit"
2026-06-15T13:57:01.5179157Z       ],
2026-06-15T13:57:01.5179343Z       "stages": {
2026-06-15T13:57:01.5179515Z         "doc": {
2026-06-15T13:57:01.5179709Z           "complete": false,
2026-06-15T13:57:01.5179885Z           "evidence": []
2026-06-15T13:57:01.5180055Z         },
2026-06-15T13:57:01.5180231Z         "impl": {
2026-06-15T13:57:01.5180412Z           "complete": true,
2026-06-15T13:57:01.5180594Z           "evidence": [
2026-06-15T13:57:01.5180764Z             {
2026-06-15T13:57:01.5180984Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:57:01.5181157Z               "line": 49
2026-06-15T13:57:01.5181323Z             },
2026-06-15T13:57:01.5185644Z             {
2026-06-15T13:57:01.5185978Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:57:01.5186186Z               "line": 81
2026-06-15T13:57:01.5186350Z             }
2026-06-15T13:57:01.5186520Z           ]
2026-06-15T13:57:01.5186688Z         },
2026-06-15T13:57:01.5186864Z         "int": {
2026-06-15T13:57:01.5187059Z           "complete": false,
2026-06-15T13:57:01.5187232Z           "evidence": []
2026-06-15T13:57:01.5187407Z         },
2026-06-15T13:57:01.5187571Z         "unit": {
2026-06-15T13:57:01.5187759Z           "complete": true,
2026-06-15T13:57:01.5187926Z           "evidence": [
2026-06-15T13:57:01.5188095Z             {
2026-06-15T13:57:01.5188344Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:57:01.5188520Z               "line": 156
2026-06-15T13:57:01.5188696Z             },
2026-06-15T13:57:01.5188859Z             {
2026-06-15T13:57:01.5189174Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:57:01.5189349Z               "line": 173
2026-06-15T13:57:01.5189518Z             },
2026-06-15T13:57:01.5189847Z             {
2026-06-15T13:57:01.5190065Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:57:01.5190241Z               "line": 196
2026-06-15T13:57:01.5190407Z             }
2026-06-15T13:57:01.5190577Z           ]
2026-06-15T13:57:01.5190739Z         }
2026-06-15T13:57:01.5190910Z       }
2026-06-15T13:57:01.5191077Z     },
2026-06-15T13:57:01.5191249Z     {
2026-06-15T13:57:01.5191473Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-15T13:57:01.5191792Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-15T13:57:01.5192098Z       "requiredStages": [
2026-06-15T13:57:01.5192269Z         "impl",
2026-06-15T13:57:01.5192432Z         "unit"
2026-06-15T13:57:01.5192598Z       ],
2026-06-15T13:57:01.5192765Z       "stages": {
2026-06-15T13:57:01.5192942Z         "doc": {
2026-06-15T13:57:01.5193118Z           "complete": false,
2026-06-15T13:57:01.5193289Z           "evidence": []
2026-06-15T13:57:01.5193456Z         },
2026-06-15T13:57:01.5193642Z         "impl": {
2026-06-15T13:57:01.5193827Z           "complete": true,
2026-06-15T13:57:01.5194000Z           "evidence": [
2026-06-15T13:57:01.5194166Z             {
2026-06-15T13:57:01.5194405Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:57:01.5194581Z               "line": 120
2026-06-15T13:57:01.5194752Z             }
2026-06-15T13:57:01.5194916Z           ]
2026-06-15T13:57:01.5195086Z         },
2026-06-15T13:57:01.5195250Z         "int": {
2026-06-15T13:57:01.5195438Z           "complete": false,
2026-06-15T13:57:01.5195614Z           "evidence": []
2026-06-15T13:57:01.5195788Z         },
2026-06-15T13:57:01.5195961Z         "unit": {
2026-06-15T13:57:01.5196151Z           "complete": true,
2026-06-15T13:57:01.5196328Z           "evidence": [
2026-06-15T13:57:01.5196494Z             {
2026-06-15T13:57:01.5196732Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:57:01.5196914Z               "line": 212
2026-06-15T13:57:01.5197095Z             },
2026-06-15T13:57:01.5197267Z             {
2026-06-15T13:57:01.5197501Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:57:01.5197682Z               "line": 221
2026-06-15T13:57:01.5197849Z             },
2026-06-15T13:57:01.5198020Z             {
2026-06-15T13:57:01.5198249Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:57:01.5198424Z               "line": 229
2026-06-15T13:57:01.5198594Z             },
2026-06-15T13:57:01.5198766Z             {
2026-06-15T13:57:01.5199071Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:57:01.5199247Z               "line": 239
2026-06-15T13:57:01.5199419Z             },
2026-06-15T13:57:01.5199585Z             {
2026-06-15T13:57:01.5199815Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:57:01.5199986Z               "line": 249
2026-06-15T13:57:01.5200162Z             }
2026-06-15T13:57:01.5200330Z           ]
2026-06-15T13:57:01.5200500Z         }
2026-06-15T13:57:01.5200674Z       }
2026-06-15T13:57:01.5200829Z     },
2026-06-15T13:57:01.5200996Z     {
2026-06-15T13:57:01.5201208Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-15T13:57:01.5201508Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-15T13:57:01.5201714Z       "requiredStages": [
2026-06-15T13:57:01.5201885Z         "impl",
2026-06-15T13:57:01.5202076Z         "unit"
2026-06-15T13:57:01.5202238Z       ],
2026-06-15T13:57:01.5202414Z       "stages": {
2026-06-15T13:57:01.5202601Z         "doc": {
2026-06-15T13:57:01.5202844Z           "complete": false,
2026-06-15T13:57:01.5203144Z           "evidence": []
2026-06-15T13:57:01.5203411Z         },
2026-06-15T13:57:01.5203706Z         "impl": {
2026-06-15T13:57:01.5203983Z           "complete": true,
2026-06-15T13:57:01.5204178Z           "evidence": [
2026-06-15T13:57:01.5204340Z             {
2026-06-15T13:57:01.5204560Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:57:01.5204735Z               "line": 14
2026-06-15T13:57:01.5205045Z             },
2026-06-15T13:57:01.5205213Z             {
2026-06-15T13:57:01.5205417Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:57:01.5205594Z               "line": 63
2026-06-15T13:57:01.5205761Z             }
2026-06-15T13:57:01.5205932Z           ]
2026-06-15T13:57:01.5206103Z         },
2026-06-15T13:57:01.5206268Z         "int": {
2026-06-15T13:57:01.5206459Z           "complete": false,
2026-06-15T13:57:01.5206635Z           "evidence": []
2026-06-15T13:57:01.5206864Z         },
2026-06-15T13:57:01.5207030Z         "unit": {
2026-06-15T13:57:01.5207365Z           "complete": true,
2026-06-15T13:57:01.5207541Z           "evidence": [
2026-06-15T13:57:01.5207698Z             {
2026-06-15T13:57:01.5207908Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:57:01.5208076Z               "line": 164
2026-06-15T13:57:01.5208251Z             },
2026-06-15T13:57:01.5208414Z             {
2026-06-15T13:57:01.5208619Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:57:01.5208809Z               "line": 198
2026-06-15T13:57:01.5209037Z             },
2026-06-15T13:57:01.5209201Z             {
2026-06-15T13:57:01.5209402Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:57:01.5209583Z               "line": 220
2026-06-15T13:57:01.5209745Z             }
2026-06-15T13:57:01.5209921Z           ]
2026-06-15T13:57:01.5210084Z         }
2026-06-15T13:57:01.5210250Z       }
2026-06-15T13:57:01.5210417Z     },
2026-06-15T13:57:01.5210580Z     {
2026-06-15T13:57:01.5210775Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-15T13:57:01.5213055Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-15T13:57:01.5213261Z       "requiredStages": [],
2026-06-15T13:57:01.5213437Z       "stages": {
2026-06-15T13:57:01.5213604Z         "doc": {
2026-06-15T13:57:01.5213786Z           "complete": true,
2026-06-15T13:57:01.5213966Z           "evidence": [
2026-06-15T13:57:01.5214130Z             {
2026-06-15T13:57:01.5214352Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:57:01.5214524Z               "line": 165
2026-06-15T13:57:01.5214694Z             }
2026-06-15T13:57:01.5214862Z           ]
2026-06-15T13:57:01.5215038Z         },
2026-06-15T13:57:01.5215215Z         "impl": {
2026-06-15T13:57:01.5215401Z           "complete": false,
2026-06-15T13:57:01.5215582Z           "evidence": []
2026-06-15T13:57:01.5215745Z         },
2026-06-15T13:57:01.5215925Z         "int": {
2026-06-15T13:57:01.5216107Z           "complete": false,
2026-06-15T13:57:01.5216283Z           "evidence": []
2026-06-15T13:57:01.5216455Z         },
2026-06-15T13:57:01.5216625Z         "unit": {
2026-06-15T13:57:01.5216814Z           "complete": false,
2026-06-15T13:57:01.5217019Z           "evidence": []
2026-06-15T13:57:01.5217204Z         }
2026-06-15T13:57:01.5217367Z       }
2026-06-15T13:57:01.5217543Z     },
2026-06-15T13:57:01.5217711Z     {
2026-06-15T13:57:01.5217934Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-15T13:57:01.5218330Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-15T13:57:01.5218506Z       "requiredStages": [
2026-06-15T13:57:01.5218674Z         "impl",
2026-06-15T13:57:01.5218854Z         "unit"
2026-06-15T13:57:01.5219308Z       ],
2026-06-15T13:57:01.5219501Z       "stages": {
2026-06-15T13:57:01.5219667Z         "doc": {
2026-06-15T13:57:01.5219857Z           "complete": false,
2026-06-15T13:57:01.5220034Z           "evidence": []
2026-06-15T13:57:01.5220206Z         },
2026-06-15T13:57:01.5220377Z         "impl": {
2026-06-15T13:57:01.5220573Z           "complete": true,
2026-06-15T13:57:01.5220888Z           "evidence": [
2026-06-15T13:57:01.5221054Z             {
2026-06-15T13:57:01.5221288Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:57:01.5221460Z               "line": 76
2026-06-15T13:57:01.5221630Z             },
2026-06-15T13:57:01.5221804Z             {
2026-06-15T13:57:01.5222035Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:57:01.5222206Z               "line": 167
2026-06-15T13:57:01.5222371Z             },
2026-06-15T13:57:01.5222539Z             {
2026-06-15T13:57:01.5222758Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:57:01.5223058Z               "line": 233
2026-06-15T13:57:01.5223221Z             },
2026-06-15T13:57:01.5223388Z             {
2026-06-15T13:57:01.5223601Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:57:01.5223774Z               "line": 272
2026-06-15T13:57:01.5223944Z             }
2026-06-15T13:57:01.5224108Z           ]
2026-06-15T13:57:01.5224283Z         },
2026-06-15T13:57:01.5224442Z         "int": {
2026-06-15T13:57:01.5224632Z           "complete": false,
2026-06-15T13:57:01.5224822Z           "evidence": []
2026-06-15T13:57:01.5224988Z         },
2026-06-15T13:57:01.5225164Z         "unit": {
2026-06-15T13:57:01.5225341Z           "complete": true,
2026-06-15T13:57:01.5225517Z           "evidence": [
2026-06-15T13:57:01.5225676Z             {
2026-06-15T13:57:01.5225908Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:57:01.5226094Z               "line": 321
2026-06-15T13:57:01.5226257Z             },
2026-06-15T13:57:01.5226452Z             {
2026-06-15T13:57:01.5226677Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:57:01.5226862Z               "line": 329
2026-06-15T13:57:01.5227038Z             },
2026-06-15T13:57:01.5227214Z             {
2026-06-15T13:57:01.5227445Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:57:01.5227622Z               "line": 356
2026-06-15T13:57:01.5227812Z             },
2026-06-15T13:57:01.5227989Z             {
2026-06-15T13:57:01.5228214Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:57:01.5228389Z               "line": 395
2026-06-15T13:57:01.5228562Z             },
2026-06-15T13:57:01.5228732Z             {
2026-06-15T13:57:01.5229038Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:57:01.5229220Z               "line": 406
2026-06-15T13:57:01.5229395Z             },
2026-06-15T13:57:01.5229572Z             {
2026-06-15T13:57:01.5229782Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:57:01.5229972Z               "line": 418
2026-06-15T13:57:01.5230143Z             },
2026-06-15T13:57:01.5230317Z             {
2026-06-15T13:57:01.5230542Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:57:01.5230717Z               "line": 442
2026-06-15T13:57:01.5230899Z             }
2026-06-15T13:57:01.5231066Z           ]
2026-06-15T13:57:01.5231242Z         }
2026-06-15T13:57:01.5231415Z       }
2026-06-15T13:57:01.5231585Z     },
2026-06-15T13:57:01.5231753Z     {
2026-06-15T13:57:01.5231962Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-15T13:57:01.5232234Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-15T13:57:01.5232421Z       "requiredStages": [
2026-06-15T13:57:01.5232595Z         "impl",
2026-06-15T13:57:01.5232776Z         "int"
2026-06-15T13:57:01.5232941Z       ],
2026-06-15T13:57:01.5233119Z       "stages": {
2026-06-15T13:57:01.5233289Z         "doc": {
2026-06-15T13:57:01.5233485Z           "complete": false,
2026-06-15T13:57:01.5233671Z           "evidence": []
2026-06-15T13:57:01.5233851Z         },
2026-06-15T13:57:01.5234033Z         "impl": {
2026-06-15T13:57:01.5234219Z           "complete": true,
2026-06-15T13:57:01.5234410Z           "evidence": [
2026-06-15T13:57:01.5234620Z             {
2026-06-15T13:57:01.5234997Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.5235283Z               "line": 22
2026-06-15T13:57:01.5235654Z             }
2026-06-15T13:57:01.5235834Z           ]
2026-06-15T13:57:01.5236007Z         },
2026-06-15T13:57:01.5236183Z         "int": {
2026-06-15T13:57:01.5236373Z           "complete": true,
2026-06-15T13:57:01.5236555Z           "evidence": [
2026-06-15T13:57:01.5236725Z             {
2026-06-15T13:57:01.5236974Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-15T13:57:01.5237161Z               "line": 18
2026-06-15T13:57:01.5237331Z             }
2026-06-15T13:57:01.5237514Z           ]
2026-06-15T13:57:01.5237679Z         },
2026-06-15T13:57:01.5237981Z         "unit": {
2026-06-15T13:57:01.5238163Z           "complete": false,
2026-06-15T13:57:01.5238363Z           "evidence": []
2026-06-15T13:57:01.5238535Z         }
2026-06-15T13:57:01.5238710Z       }
2026-06-15T13:57:01.5238925Z     },
2026-06-15T13:57:01.5239198Z     {
2026-06-15T13:57:01.5239488Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-15T13:57:01.5239841Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-15T13:57:01.5240038Z       "requiredStages": [
2026-06-15T13:57:01.5240218Z         "impl",
2026-06-15T13:57:01.5240391Z         "unit"
2026-06-15T13:57:01.5240565Z       ],
2026-06-15T13:57:01.5240741Z       "stages": {
2026-06-15T13:57:01.5240919Z         "doc": {
2026-06-15T13:57:01.5241107Z           "complete": false,
2026-06-15T13:57:01.5241297Z           "evidence": []
2026-06-15T13:57:01.5241473Z         },
2026-06-15T13:57:01.5241646Z         "impl": {
2026-06-15T13:57:01.5241845Z           "complete": true,
2026-06-15T13:57:01.5242069Z           "evidence": [
2026-06-15T13:57:01.5242246Z             {
2026-06-15T13:57:01.5242484Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.5242666Z               "line": 415
2026-06-15T13:57:01.5242842Z             },
2026-06-15T13:57:01.5243009Z             {
2026-06-15T13:57:01.5243231Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:57:01.5243416Z               "line": 27
2026-06-15T13:57:01.5243583Z             }
2026-06-15T13:57:01.5243754Z           ]
2026-06-15T13:57:01.5243926Z         },
2026-06-15T13:57:01.5244102Z         "int": {
2026-06-15T13:57:01.5244288Z           "complete": false,
2026-06-15T13:57:01.5244474Z           "evidence": []
2026-06-15T13:57:01.5244641Z         },
2026-06-15T13:57:01.5244817Z         "unit": {
2026-06-15T13:57:01.5244994Z           "complete": true,
2026-06-15T13:57:01.5245181Z           "evidence": [
2026-06-15T13:57:01.5245356Z             {
2026-06-15T13:57:01.5245738Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.5246070Z               "line": 940
2026-06-15T13:57:01.5246399Z             },
2026-06-15T13:57:01.5246675Z             {
2026-06-15T13:57:01.5247082Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:57:01.5247421Z               "line": 181
2026-06-15T13:57:01.5247707Z             }
2026-06-15T13:57:01.5247983Z           ]
2026-06-15T13:57:01.5248173Z         }
2026-06-15T13:57:01.5248339Z       }
2026-06-15T13:57:01.5248541Z     },
2026-06-15T13:57:01.5248728Z     {
2026-06-15T13:57:01.5249038Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-15T13:57:01.5249363Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-15T13:57:01.5249566Z       "requiredStages": [
2026-06-15T13:57:01.5249743Z         "impl",
2026-06-15T13:57:01.5249910Z         "unit"
2026-06-15T13:57:01.5250091Z       ],
2026-06-15T13:57:01.5250273Z       "stages": {
2026-06-15T13:57:01.5250449Z         "doc": {
2026-06-15T13:57:01.5250688Z           "complete": false,
2026-06-15T13:57:01.5250994Z           "evidence": []
2026-06-15T13:57:01.5251278Z         },
2026-06-15T13:57:01.5251489Z         "impl": {
2026-06-15T13:57:01.5251691Z           "complete": true,
2026-06-15T13:57:01.5251871Z           "evidence": [
2026-06-15T13:57:01.5252057Z             {
2026-06-15T13:57:01.5252301Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.5252629Z               "line": 73
2026-06-15T13:57:01.5252811Z             },
2026-06-15T13:57:01.5252982Z             {
2026-06-15T13:57:01.5253231Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.5253484Z               "line": 941
2026-06-15T13:57:01.5253801Z             },
2026-06-15T13:57:01.5254191Z             {
2026-06-15T13:57:01.5254743Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T13:57:01.5255078Z               "line": 20
2026-06-15T13:57:01.5255382Z             },
2026-06-15T13:57:01.5255693Z             {
2026-06-15T13:57:01.5256399Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T13:57:01.5256760Z               "line": 100
2026-06-15T13:57:01.5257098Z             },
2026-06-15T13:57:01.5257403Z             {
2026-06-15T13:57:01.5257818Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:57:01.5258147Z               "line": 555
2026-06-15T13:57:01.5258476Z             },
2026-06-15T13:57:01.5258823Z             {
2026-06-15T13:57:01.5259365Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T13:57:01.5259684Z               "line": 68
2026-06-15T13:57:01.5259850Z             },
2026-06-15T13:57:01.5260013Z             {
2026-06-15T13:57:01.5260252Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T13:57:01.5260431Z               "line": 80
2026-06-15T13:57:01.5260604Z             }
2026-06-15T13:57:01.5260770Z           ]
2026-06-15T13:57:01.5260933Z         },
2026-06-15T13:57:01.5261095Z         "int": {
2026-06-15T13:57:01.5261299Z           "complete": true,
2026-06-15T13:57:01.5261473Z           "evidence": [
2026-06-15T13:57:01.5261642Z             {
2026-06-15T13:57:01.5261871Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-15T13:57:01.5262045Z               "line": 44
2026-06-15T13:57:01.5262208Z             }
2026-06-15T13:57:01.5262369Z           ]
2026-06-15T13:57:01.5262541Z         },
2026-06-15T13:57:01.5262712Z         "unit": {
2026-06-15T13:57:01.5262904Z           "complete": true,
2026-06-15T13:57:01.5263085Z           "evidence": [
2026-06-15T13:57:01.5263247Z             {
2026-06-15T13:57:01.5263476Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.5263652Z               "line": 1141
2026-06-15T13:57:01.5263828Z             },
2026-06-15T13:57:01.5263986Z             {
2026-06-15T13:57:01.5264228Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.5264400Z               "line": 1157
2026-06-15T13:57:01.5264569Z             },
2026-06-15T13:57:01.5264775Z             {
2026-06-15T13:57:01.5265018Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.5265203Z               "line": 1488
2026-06-15T13:57:01.5265366Z             },
2026-06-15T13:57:01.5265532Z             {
2026-06-15T13:57:01.5265751Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T13:57:01.5265928Z               "line": 152
2026-06-15T13:57:01.5266105Z             },
2026-06-15T13:57:01.5266277Z             {
2026-06-15T13:57:01.5266505Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T13:57:01.5266682Z               "line": 175
2026-06-15T13:57:01.5266868Z             },
2026-06-15T13:57:01.5267043Z             {
2026-06-15T13:57:01.5267263Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T13:57:01.5267443Z               "line": 186
2026-06-15T13:57:01.5267616Z             },
2026-06-15T13:57:01.5267786Z             {
2026-06-15T13:57:01.5267997Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T13:57:01.5268192Z               "line": 202
2026-06-15T13:57:01.5268369Z             },
2026-06-15T13:57:01.5268536Z             {
2026-06-15T13:57:01.5268759Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T13:57:01.5268936Z               "line": 216
2026-06-15T13:57:01.5269237Z             },
2026-06-15T13:57:01.5269435Z             {
2026-06-15T13:57:01.5269671Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T13:57:01.5270048Z               "line": 137
2026-06-15T13:57:01.5270216Z             },
2026-06-15T13:57:01.5270396Z             {
2026-06-15T13:57:01.5270597Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.5270778Z               "line": 6691
2026-06-15T13:57:01.5270940Z             },
2026-06-15T13:57:01.5271107Z             {
2026-06-15T13:57:01.5271335Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-15T13:57:01.5271507Z               "line": 30
2026-06-15T13:57:01.5271675Z             },
2026-06-15T13:57:01.5271950Z             {
2026-06-15T13:57:01.5272170Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-15T13:57:01.5272341Z               "line": 73
2026-06-15T13:57:01.5272506Z             }
2026-06-15T13:57:01.5272672Z           ]
2026-06-15T13:57:01.5272839Z         }
2026-06-15T13:57:01.5273016Z       }
2026-06-15T13:57:01.5273178Z     },
2026-06-15T13:57:01.5273355Z     {
2026-06-15T13:57:01.5273544Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-15T13:57:01.5274004Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-15T13:57:01.5274193Z       "requiredStages": [
2026-06-15T13:57:01.5274356Z         "impl",
2026-06-15T13:57:01.5274517Z         "unit"
2026-06-15T13:57:01.5274690Z       ],
2026-06-15T13:57:01.5274859Z       "stages": {
2026-06-15T13:57:01.5275030Z         "doc": {
2026-06-15T13:57:01.5275205Z           "complete": true,
2026-06-15T13:57:01.5275378Z           "evidence": [
2026-06-15T13:57:01.5275539Z             {
2026-06-15T13:57:01.5275753Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:57:01.5275927Z               "line": 133
2026-06-15T13:57:01.5276092Z             }
2026-06-15T13:57:01.5276260Z           ]
2026-06-15T13:57:01.5276426Z         },
2026-06-15T13:57:01.5276607Z         "impl": {
2026-06-15T13:57:01.5276788Z           "complete": true,
2026-06-15T13:57:01.5276969Z           "evidence": [
2026-06-15T13:57:01.5277142Z             {
2026-06-15T13:57:01.5277356Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:57:01.5277534Z               "line": 65
2026-06-15T13:57:01.5277703Z             },
2026-06-15T13:57:01.5277871Z             {
2026-06-15T13:57:01.5278084Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T13:57:01.5278266Z               "line": 17
2026-06-15T13:57:01.5278428Z             },
2026-06-15T13:57:01.5278604Z             {
2026-06-15T13:57:01.5278833Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:57:01.5279120Z               "line": 146
2026-06-15T13:57:01.5279315Z             },
2026-06-15T13:57:01.5279482Z             {
2026-06-15T13:57:01.5279716Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.5279887Z               "line": 249
2026-06-15T13:57:01.5280058Z             },
2026-06-15T13:57:01.5280232Z             {
2026-06-15T13:57:01.5280442Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.5280632Z               "line": 362
2026-06-15T13:57:01.5280785Z             },
2026-06-15T13:57:01.5280956Z             {
2026-06-15T13:57:01.5281171Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:57:01.5281353Z               "line": 32
2026-06-15T13:57:01.5281519Z             },
2026-06-15T13:57:01.5281682Z             {
2026-06-15T13:57:01.5281886Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.5282053Z               "line": 1177
2026-06-15T13:57:01.5282225Z             },
2026-06-15T13:57:01.5282392Z             {
2026-06-15T13:57:01.5282588Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.5282782Z               "line": 5312
2026-06-15T13:57:01.5282948Z             },
2026-06-15T13:57:01.5283127Z             {
2026-06-15T13:57:01.5283319Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.5283494Z               "line": 5594
2026-06-15T13:57:01.5283662Z             }
2026-06-15T13:57:01.5283833Z           ]
2026-06-15T13:57:01.5284109Z         },
2026-06-15T13:57:01.5284282Z         "int": {
2026-06-15T13:57:01.5284467Z           "complete": false,
2026-06-15T13:57:01.5284639Z           "evidence": []
2026-06-15T13:57:01.5284806Z         },
2026-06-15T13:57:01.5284977Z         "unit": {
2026-06-15T13:57:01.5285160Z           "complete": true,
2026-06-15T13:57:01.5285334Z           "evidence": [
2026-06-15T13:57:01.5285505Z             {
2026-06-15T13:57:01.5285718Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T13:57:01.5285895Z               "line": 94
2026-06-15T13:57:01.5286070Z             },
2026-06-15T13:57:01.5286352Z             {
2026-06-15T13:57:01.5286582Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T13:57:01.5286768Z               "line": 111
2026-06-15T13:57:01.5286929Z             },
2026-06-15T13:57:01.5287097Z             {
2026-06-15T13:57:01.5287315Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T13:57:01.5287501Z               "line": 124
2026-06-15T13:57:01.5287663Z             },
2026-06-15T13:57:01.5287902Z             {
2026-06-15T13:57:01.5288122Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T13:57:01.5288300Z               "line": 134
2026-06-15T13:57:01.5288474Z             },
2026-06-15T13:57:01.5288639Z             {
2026-06-15T13:57:01.5288854Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T13:57:01.5289132Z               "line": 144
2026-06-15T13:57:01.5289317Z             },
2026-06-15T13:57:01.5289484Z             {
2026-06-15T13:57:01.5289695Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T13:57:01.5289884Z               "line": 156
2026-06-15T13:57:01.5290047Z             },
2026-06-15T13:57:01.5290209Z             {
2026-06-15T13:57:01.5290451Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.5290627Z               "line": 746
2026-06-15T13:57:01.5290797Z             },
2026-06-15T13:57:01.5290964Z             {
2026-06-15T13:57:01.5291197Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:57:01.5291369Z               "line": 309
2026-06-15T13:57:01.5291545Z             }
2026-06-15T13:57:01.5291717Z           ]
2026-06-15T13:57:01.5291890Z         }
2026-06-15T13:57:01.5292060Z       }
2026-06-15T13:57:01.5292214Z     },
2026-06-15T13:57:01.5292384Z     {
2026-06-15T13:57:01.5292585Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-15T13:57:01.5292834Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-15T13:57:01.5293018Z       "requiredStages": [
2026-06-15T13:57:01.5293196Z         "impl",
2026-06-15T13:57:01.5293384Z         "unit"
2026-06-15T13:57:01.5293560Z       ],
2026-06-15T13:57:01.5293735Z       "stages": {
2026-06-15T13:57:01.5293907Z         "doc": {
2026-06-15T13:57:01.5294092Z           "complete": false,
2026-06-15T13:57:01.5294265Z           "evidence": []
2026-06-15T13:57:01.5294427Z         },
2026-06-15T13:57:01.5294613Z         "impl": {
2026-06-15T13:57:01.5294789Z           "complete": true,
2026-06-15T13:57:01.5294975Z           "evidence": [
2026-06-15T13:57:01.5295142Z             {
2026-06-15T13:57:01.5295366Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:57:01.5295547Z               "line": 128
2026-06-15T13:57:01.5295725Z             }
2026-06-15T13:57:01.5295894Z           ]
2026-06-15T13:57:01.5296066Z         },
2026-06-15T13:57:01.5296240Z         "int": {
2026-06-15T13:57:01.5296417Z           "complete": false,
2026-06-15T13:57:01.5296602Z           "evidence": []
2026-06-15T13:57:01.5296756Z         },
2026-06-15T13:57:01.5296936Z         "unit": {
2026-06-15T13:57:01.5297132Z           "complete": true,
2026-06-15T13:57:01.5297314Z           "evidence": [
2026-06-15T13:57:01.5297499Z             {
2026-06-15T13:57:01.5297723Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:57:01.5297899Z               "line": 205
2026-06-15T13:57:01.5298066Z             }
2026-06-15T13:57:01.5298243Z           ]
2026-06-15T13:57:01.5298409Z         }
2026-06-15T13:57:01.5298578Z       }
2026-06-15T13:57:01.5298870Z     },
2026-06-15T13:57:01.5299138Z     {
2026-06-15T13:57:01.5299387Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-15T13:57:01.5299663Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-15T13:57:01.5299849Z       "requiredStages": [
2026-06-15T13:57:01.5300020Z         "impl",
2026-06-15T13:57:01.5300192Z         "unit"
2026-06-15T13:57:01.5300364Z       ],
2026-06-15T13:57:01.5300531Z       "stages": {
2026-06-15T13:57:01.5300707Z         "doc": {
2026-06-15T13:57:01.5300890Z           "complete": false,
2026-06-15T13:57:01.5301192Z           "evidence": []
2026-06-15T13:57:01.5301366Z         },
2026-06-15T13:57:01.5301543Z         "impl": {
2026-06-15T13:57:01.5301733Z           "complete": true,
2026-06-15T13:57:01.5301905Z           "evidence": [
2026-06-15T13:57:01.5302076Z             {
2026-06-15T13:57:01.5302295Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.5302474Z               "line": 272
2026-06-15T13:57:01.5302658Z             },
2026-06-15T13:57:01.5302821Z             {
2026-06-15T13:57:01.5303040Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.5303211Z               "line": 283
2026-06-15T13:57:01.5303384Z             },
2026-06-15T13:57:01.5303554Z             {
2026-06-15T13:57:01.5303766Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.5303949Z               "line": 301
2026-06-15T13:57:01.5304116Z             }
2026-06-15T13:57:01.5304290Z           ]
2026-06-15T13:57:01.5304458Z         },
2026-06-15T13:57:01.5304638Z         "int": {
2026-06-15T13:57:01.5304830Z           "complete": false,
2026-06-15T13:57:01.5304997Z           "evidence": []
2026-06-15T13:57:01.5305191Z         },
2026-06-15T13:57:01.5305359Z         "unit": {
2026-06-15T13:57:01.5305549Z           "complete": true,
2026-06-15T13:57:01.5305731Z           "evidence": [
2026-06-15T13:57:01.5305907Z             {
2026-06-15T13:57:01.5306121Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.5306309Z               "line": 325
2026-06-15T13:57:01.5306473Z             },
2026-06-15T13:57:01.5306640Z             {
2026-06-15T13:57:01.5306862Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.5307040Z               "line": 346
2026-06-15T13:57:01.5307219Z             },
2026-06-15T13:57:01.5307397Z             {
2026-06-15T13:57:01.5307616Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.5307805Z               "line": 574
2026-06-15T13:57:01.5307974Z             },
2026-06-15T13:57:01.5308159Z             {
2026-06-15T13:57:01.5308364Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.5308546Z               "line": 585
2026-06-15T13:57:01.5308722Z             },
2026-06-15T13:57:01.5308890Z             {
2026-06-15T13:57:01.5309224Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.5309460Z               "line": 598
2026-06-15T13:57:01.5309632Z             }
2026-06-15T13:57:01.5309808Z           ]
2026-06-15T13:57:01.5309984Z         }
2026-06-15T13:57:01.5310157Z       }
2026-06-15T13:57:01.5310327Z     },
2026-06-15T13:57:01.5310505Z     {
2026-06-15T13:57:01.5310718Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-15T13:57:01.5311790Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-15T13:57:01.5311987Z       "requiredStages": [
2026-06-15T13:57:01.5312161Z         "impl",
2026-06-15T13:57:01.5312341Z         "unit"
2026-06-15T13:57:01.5312499Z       ],
2026-06-15T13:57:01.5312680Z       "stages": {
2026-06-15T13:57:01.5312851Z         "doc": {
2026-06-15T13:57:01.5313048Z           "complete": false,
2026-06-15T13:57:01.5313232Z           "evidence": []
2026-06-15T13:57:01.5313400Z         },
2026-06-15T13:57:01.5313576Z         "impl": {
2026-06-15T13:57:01.5313752Z           "complete": true,
2026-06-15T13:57:01.5314053Z           "evidence": [
2026-06-15T13:57:01.5314220Z             {
2026-06-15T13:57:01.5314457Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.5314643Z               "line": 759
2026-06-15T13:57:01.5314817Z             }
2026-06-15T13:57:01.5314985Z           ]
2026-06-15T13:57:01.5315155Z         },
2026-06-15T13:57:01.5315323Z         "int": {
2026-06-15T13:57:01.5315513Z           "complete": false,
2026-06-15T13:57:01.5315690Z           "evidence": []
2026-06-15T13:57:01.5315866Z         },
2026-06-15T13:57:01.5316147Z         "unit": {
2026-06-15T13:57:01.5316343Z           "complete": true,
2026-06-15T13:57:01.5316516Z           "evidence": [
2026-06-15T13:57:01.5316686Z             {
2026-06-15T13:57:01.5321633Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.5321899Z               "line": 873
2026-06-15T13:57:01.5322098Z             }
2026-06-15T13:57:01.5322274Z           ]
2026-06-15T13:57:01.5322462Z         }
2026-06-15T13:57:01.5322630Z       }
2026-06-15T13:57:01.5322796Z     },
2026-06-15T13:57:01.5322954Z     {
2026-06-15T13:57:01.5323168Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-15T13:57:01.5323574Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-15T13:57:01.5323764Z       "requiredStages": [
2026-06-15T13:57:01.5323937Z         "impl",
2026-06-15T13:57:01.5324107Z         "unit"
2026-06-15T13:57:01.5324275Z       ],
2026-06-15T13:57:01.5324446Z       "stages": {
2026-06-15T13:57:01.5324609Z         "doc": {
2026-06-15T13:57:01.5324805Z           "complete": false,
2026-06-15T13:57:01.5324966Z           "evidence": []
2026-06-15T13:57:01.5325137Z         },
2026-06-15T13:57:01.5325306Z         "impl": {
2026-06-15T13:57:01.5325492Z           "complete": true,
2026-06-15T13:57:01.5325668Z           "evidence": [
2026-06-15T13:57:01.5325836Z             {
2026-06-15T13:57:01.5326054Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T13:57:01.5326241Z               "line": 14
2026-06-15T13:57:01.5326422Z             },
2026-06-15T13:57:01.5326589Z             {
2026-06-15T13:57:01.5326804Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:57:01.5326979Z               "line": 449
2026-06-15T13:57:01.5327152Z             }
2026-06-15T13:57:01.5327318Z           ]
2026-06-15T13:57:01.5327486Z         },
2026-06-15T13:57:01.5327669Z         "int": {
2026-06-15T13:57:01.5327882Z           "complete": false,
2026-06-15T13:57:01.5328064Z           "evidence": []
2026-06-15T13:57:01.5328240Z         },
2026-06-15T13:57:01.5328412Z         "unit": {
2026-06-15T13:57:01.5328588Z           "complete": true,
2026-06-15T13:57:01.5328769Z           "evidence": [
2026-06-15T13:57:01.5328935Z             {
2026-06-15T13:57:01.5329260Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T13:57:01.5329465Z               "line": 130
2026-06-15T13:57:01.5329638Z             },
2026-06-15T13:57:01.5329813Z             {
2026-06-15T13:57:01.5330029Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T13:57:01.5330199Z               "line": 138
2026-06-15T13:57:01.5330367Z             },
2026-06-15T13:57:01.5330532Z             {
2026-06-15T13:57:01.5330743Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T13:57:01.5330909Z               "line": 146
2026-06-15T13:57:01.5331076Z             },
2026-06-15T13:57:01.5331249Z             {
2026-06-15T13:57:01.5331462Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T13:57:01.5331644Z               "line": 154
2026-06-15T13:57:01.5331824Z             },
2026-06-15T13:57:01.5331987Z             {
2026-06-15T13:57:01.5332193Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T13:57:01.5332372Z               "line": 162
2026-06-15T13:57:01.5332541Z             },
2026-06-15T13:57:01.5332705Z             {
2026-06-15T13:57:01.5332920Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T13:57:01.5333089Z               "line": 170
2026-06-15T13:57:01.5333718Z             }
2026-06-15T13:57:01.5333872Z           ]
2026-06-15T13:57:01.5334047Z         }
2026-06-15T13:57:01.5334211Z       }
2026-06-15T13:57:01.5334377Z     },
2026-06-15T13:57:01.5334549Z     {
2026-06-15T13:57:01.5334769Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-15T13:57:01.5336506Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-15T13:57:01.5336858Z       "requiredStages": [
2026-06-15T13:57:01.5337035Z         "impl",
2026-06-15T13:57:01.5337210Z         "unit"
2026-06-15T13:57:01.5337374Z       ],
2026-06-15T13:57:01.5337554Z       "stages": {
2026-06-15T13:57:01.5337721Z         "doc": {
2026-06-15T13:57:01.5337912Z           "complete": false,
2026-06-15T13:57:01.5338088Z           "evidence": []
2026-06-15T13:57:01.5338263Z         },
2026-06-15T13:57:01.5338447Z         "impl": {
2026-06-15T13:57:01.5338633Z           "complete": true,
2026-06-15T13:57:01.5338814Z           "evidence": [
2026-06-15T13:57:01.5339086Z             {
2026-06-15T13:57:01.5339401Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T13:57:01.5339588Z               "line": 34
2026-06-15T13:57:01.5339758Z             }
2026-06-15T13:57:01.5339935Z           ]
2026-06-15T13:57:01.5340106Z         },
2026-06-15T13:57:01.5340274Z         "int": {
2026-06-15T13:57:01.5340459Z           "complete": false,
2026-06-15T13:57:01.5340654Z           "evidence": []
2026-06-15T13:57:01.5340813Z         },
2026-06-15T13:57:01.5340992Z         "unit": {
2026-06-15T13:57:01.5341179Z           "complete": true,
2026-06-15T13:57:01.5341350Z           "evidence": [
2026-06-15T13:57:01.5341522Z             {
2026-06-15T13:57:01.5341789Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T13:57:01.5341984Z               "line": 188
2026-06-15T13:57:01.5342147Z             },
2026-06-15T13:57:01.5342313Z             {
2026-06-15T13:57:01.5342580Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T13:57:01.5342748Z               "line": 200
2026-06-15T13:57:01.5342918Z             },
2026-06-15T13:57:01.5343082Z             {
2026-06-15T13:57:01.5343333Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T13:57:01.5343508Z               "line": 211
2026-06-15T13:57:01.5343678Z             },
2026-06-15T13:57:01.5343860Z             {
2026-06-15T13:57:01.5344113Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T13:57:01.5344288Z               "line": 253
2026-06-15T13:57:01.5344461Z             },
2026-06-15T13:57:01.5344637Z             {
2026-06-15T13:57:01.5344880Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T13:57:01.5345057Z               "line": 277
2026-06-15T13:57:01.5345232Z             },
2026-06-15T13:57:01.5345400Z             {
2026-06-15T13:57:01.5345653Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T13:57:01.5345824Z               "line": 300
2026-06-15T13:57:01.5345987Z             },
2026-06-15T13:57:01.5346161Z             {
2026-06-15T13:57:01.5346413Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T13:57:01.5346593Z               "line": 316
2026-06-15T13:57:01.5346751Z             }
2026-06-15T13:57:01.5346923Z           ]
2026-06-15T13:57:01.5347094Z         }
2026-06-15T13:57:01.5347271Z       }
2026-06-15T13:57:01.5347441Z     },
2026-06-15T13:57:01.5347610Z     {
2026-06-15T13:57:01.5347828Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-15T13:57:01.5348743Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-15T13:57:01.5349174Z       "requiredStages": [
2026-06-15T13:57:01.5349379Z         "impl",
2026-06-15T13:57:01.5349542Z         "unit"
2026-06-15T13:57:01.5349717Z       ],
2026-06-15T13:57:01.5349880Z       "stages": {
2026-06-15T13:57:01.5350056Z         "doc": {
2026-06-15T13:57:01.5350237Z           "complete": false,
2026-06-15T13:57:01.5350419Z           "evidence": []
2026-06-15T13:57:01.5350586Z         },
2026-06-15T13:57:01.5350753Z         "impl": {
2026-06-15T13:57:01.5350938Z           "complete": true,
2026-06-15T13:57:01.5351107Z           "evidence": [
2026-06-15T13:57:01.5351402Z             {
2026-06-15T13:57:01.5351628Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.5351806Z               "line": 29
2026-06-15T13:57:01.5351976Z             },
2026-06-15T13:57:01.5352144Z             {
2026-06-15T13:57:01.5352359Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.5352530Z               "line": 174
2026-06-15T13:57:01.5352703Z             },
2026-06-15T13:57:01.5352878Z             {
2026-06-15T13:57:01.5353102Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.5353279Z               "line": 194
2026-06-15T13:57:01.5353450Z             },
2026-06-15T13:57:01.5353622Z             {
2026-06-15T13:57:01.5353831Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.5354016Z               "line": 222
2026-06-15T13:57:01.5354181Z             }
2026-06-15T13:57:01.5354354Z           ]
2026-06-15T13:57:01.5354529Z         },
2026-06-15T13:57:01.5354692Z         "int": {
2026-06-15T13:57:01.5354887Z           "complete": false,
2026-06-15T13:57:01.5355059Z           "evidence": []
2026-06-15T13:57:01.5355226Z         },
2026-06-15T13:57:01.5355397Z         "unit": {
2026-06-15T13:57:01.5355584Z           "complete": true,
2026-06-15T13:57:01.5355750Z           "evidence": [
2026-06-15T13:57:01.5355922Z             {
2026-06-15T13:57:01.5356151Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.5356336Z               "line": 329
2026-06-15T13:57:01.5356509Z             },
2026-06-15T13:57:01.5356675Z             {
2026-06-15T13:57:01.5356898Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.5357081Z               "line": 344
2026-06-15T13:57:01.5357249Z             },
2026-06-15T13:57:01.5357415Z             {
2026-06-15T13:57:01.5357631Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.5357817Z               "line": 417
2026-06-15T13:57:01.5357983Z             },
2026-06-15T13:57:01.5358155Z             {
2026-06-15T13:57:01.5358388Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.5358555Z               "line": 433
2026-06-15T13:57:01.5358727Z             },
2026-06-15T13:57:01.5358893Z             {
2026-06-15T13:57:01.5359241Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.5359417Z               "line": 492
2026-06-15T13:57:01.5359586Z             },
2026-06-15T13:57:01.5359768Z             {
2026-06-15T13:57:01.5359982Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.5360154Z               "line": 506
2026-06-15T13:57:01.5360320Z             },
2026-06-15T13:57:01.5360483Z             {
2026-06-15T13:57:01.5360698Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.5360873Z               "line": 517
2026-06-15T13:57:01.5361042Z             },
2026-06-15T13:57:01.5361212Z             {
2026-06-15T13:57:01.5361427Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.5361604Z               "line": 528
2026-06-15T13:57:01.5361774Z             }
2026-06-15T13:57:01.5361948Z           ]
2026-06-15T13:57:01.5362122Z         }
2026-06-15T13:57:01.5362289Z       }
2026-06-15T13:57:01.5362456Z     },
2026-06-15T13:57:01.5362628Z     {
2026-06-15T13:57:01.5362847Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-15T13:57:01.5363973Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-15T13:57:01.5364306Z       "requiredStages": [
2026-06-15T13:57:01.5364471Z         "impl",
2026-06-15T13:57:01.5364637Z         "unit"
2026-06-15T13:57:01.5364808Z       ],
2026-06-15T13:57:01.5364976Z       "stages": {
2026-06-15T13:57:01.5365142Z         "doc": {
2026-06-15T13:57:01.5365333Z           "complete": false,
2026-06-15T13:57:01.5365519Z           "evidence": []
2026-06-15T13:57:01.5365685Z         },
2026-06-15T13:57:01.5365986Z         "impl": {
2026-06-15T13:57:01.5366172Z           "complete": true,
2026-06-15T13:57:01.5366353Z           "evidence": [
2026-06-15T13:57:01.5366525Z             {
2026-06-15T13:57:01.5366784Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:57:01.5366959Z               "line": 27
2026-06-15T13:57:01.5367126Z             },
2026-06-15T13:57:01.5367301Z             {
2026-06-15T13:57:01.5367561Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:57:01.5367747Z               "line": 110
2026-06-15T13:57:01.5367914Z             },
2026-06-15T13:57:01.5368086Z             {
2026-06-15T13:57:01.5368328Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:57:01.5368506Z               "line": 153
2026-06-15T13:57:01.5368677Z             },
2026-06-15T13:57:01.5368834Z             {
2026-06-15T13:57:01.5369187Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:57:01.5369398Z               "line": 182
2026-06-15T13:57:01.5369578Z             },
2026-06-15T13:57:01.5369736Z             {
2026-06-15T13:57:01.5370001Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:57:01.5370184Z               "line": 31
2026-06-15T13:57:01.5370352Z             },
2026-06-15T13:57:01.5370528Z             {
2026-06-15T13:57:01.5370790Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:57:01.5370982Z               "line": 113
2026-06-15T13:57:01.5371162Z             },
2026-06-15T13:57:01.5371334Z             {
2026-06-15T13:57:01.5371607Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:57:01.5371782Z               "line": 138
2026-06-15T13:57:01.5371950Z             }
2026-06-15T13:57:01.5372125Z           ]
2026-06-15T13:57:01.5372288Z         },
2026-06-15T13:57:01.5372450Z         "int": {
2026-06-15T13:57:01.5372636Z           "complete": false,
2026-06-15T13:57:01.5372816Z           "evidence": []
2026-06-15T13:57:01.5372983Z         },
2026-06-15T13:57:01.5373159Z         "unit": {
2026-06-15T13:57:01.5373340Z           "complete": true,
2026-06-15T13:57:01.5373518Z           "evidence": [
2026-06-15T13:57:01.5373693Z             {
2026-06-15T13:57:01.5373931Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:57:01.5374118Z               "line": 261
2026-06-15T13:57:01.5374289Z             },
2026-06-15T13:57:01.5374472Z             {
2026-06-15T13:57:01.5374733Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:57:01.5374913Z               "line": 276
2026-06-15T13:57:01.5375070Z             },
2026-06-15T13:57:01.5375239Z             {
2026-06-15T13:57:01.5375483Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:57:01.5375658Z               "line": 293
2026-06-15T13:57:01.5375822Z             },
2026-06-15T13:57:01.5375997Z             {
2026-06-15T13:57:01.5376236Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:57:01.5376427Z               "line": 310
2026-06-15T13:57:01.5376589Z             },
2026-06-15T13:57:01.5376761Z             {
2026-06-15T13:57:01.5376990Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:57:01.5377175Z               "line": 327
2026-06-15T13:57:01.5377358Z             },
2026-06-15T13:57:01.5377519Z             {
2026-06-15T13:57:01.5377757Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:57:01.5378055Z               "line": 366
2026-06-15T13:57:01.5378220Z             },
2026-06-15T13:57:01.5378384Z             {
2026-06-15T13:57:01.5378651Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:57:01.5378826Z               "line": 179
2026-06-15T13:57:01.5379098Z             },
2026-06-15T13:57:01.5379290Z             {
2026-06-15T13:57:01.5379542Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:57:01.5379713Z               "line": 194
2026-06-15T13:57:01.5380009Z             },
2026-06-15T13:57:01.5380182Z             {
2026-06-15T13:57:01.5380451Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:57:01.5380627Z               "line": 204
2026-06-15T13:57:01.5380802Z             },
2026-06-15T13:57:01.5380970Z             {
2026-06-15T13:57:01.5381237Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:57:01.5381431Z               "line": 259
2026-06-15T13:57:01.5381603Z             },
2026-06-15T13:57:01.5381775Z             {
2026-06-15T13:57:01.5382037Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:57:01.5382209Z               "line": 269
2026-06-15T13:57:01.5382376Z             },
2026-06-15T13:57:01.5382552Z             {
2026-06-15T13:57:01.5382816Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:57:01.5382986Z               "line": 283
2026-06-15T13:57:01.5383154Z             }
2026-06-15T13:57:01.5383328Z           ]
2026-06-15T13:57:01.5383506Z         }
2026-06-15T13:57:01.5383676Z       }
2026-06-15T13:57:01.5383844Z     },
2026-06-15T13:57:01.5384010Z     {
2026-06-15T13:57:01.5384225Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-15T13:57:01.5384577Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-15T13:57:01.5384764Z       "requiredStages": [],
2026-06-15T13:57:01.5384954Z       "stages": {
2026-06-15T13:57:01.5385121Z         "doc": {
2026-06-15T13:57:01.5385308Z           "complete": false,
2026-06-15T13:57:01.5385492Z           "evidence": []
2026-06-15T13:57:01.5385659Z         },
2026-06-15T13:57:01.5385833Z         "impl": {
2026-06-15T13:57:01.5386015Z           "complete": false,
2026-06-15T13:57:01.5386186Z           "evidence": []
2026-06-15T13:57:01.5386353Z         },
2026-06-15T13:57:01.5386529Z         "int": {
2026-06-15T13:57:01.5386720Z           "complete": false,
2026-06-15T13:57:01.5386897Z           "evidence": []
2026-06-15T13:57:01.5387078Z         },
2026-06-15T13:57:01.5387245Z         "unit": {
2026-06-15T13:57:01.5387421Z           "complete": false,
2026-06-15T13:57:01.5387603Z           "evidence": []
2026-06-15T13:57:01.5387769Z         }
2026-06-15T13:57:01.5387956Z       }
2026-06-15T13:57:01.5388122Z     },
2026-06-15T13:57:01.5388294Z     {
2026-06-15T13:57:01.5388521Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-15T13:57:01.5390035Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-15T13:57:01.5390231Z       "requiredStages": [
2026-06-15T13:57:01.5390403Z         "impl",
2026-06-15T13:57:01.5390578Z         "unit"
2026-06-15T13:57:01.5390742Z       ],
2026-06-15T13:57:01.5390912Z       "stages": {
2026-06-15T13:57:01.5391073Z         "doc": {
2026-06-15T13:57:01.5391267Z           "complete": false,
2026-06-15T13:57:01.5391458Z           "evidence": []
2026-06-15T13:57:01.5391633Z         },
2026-06-15T13:57:01.5391811Z         "impl": {
2026-06-15T13:57:01.5391991Z           "complete": true,
2026-06-15T13:57:01.5392178Z           "evidence": [
2026-06-15T13:57:01.5392340Z             {
2026-06-15T13:57:01.5392573Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:57:01.5392760Z               "line": 26
2026-06-15T13:57:01.5393041Z             },
2026-06-15T13:57:01.5393212Z             {
2026-06-15T13:57:01.5393446Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:57:01.5393624Z               "line": 95
2026-06-15T13:57:01.5393793Z             },
2026-06-15T13:57:01.5393970Z             {
2026-06-15T13:57:01.5394198Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:57:01.5394375Z               "line": 166
2026-06-15T13:57:01.5394551Z             },
2026-06-15T13:57:01.5394718Z             {
2026-06-15T13:57:01.5395066Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T13:57:01.5395239Z               "line": 19
2026-06-15T13:57:01.5395415Z             },
2026-06-15T13:57:01.5395582Z             {
2026-06-15T13:57:01.5395805Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T13:57:01.5395987Z               "line": 50
2026-06-15T13:57:01.5396156Z             },
2026-06-15T13:57:01.5396332Z             {
2026-06-15T13:57:01.5396555Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T13:57:01.5396741Z               "line": 18
2026-06-15T13:57:01.5396918Z             },
2026-06-15T13:57:01.5397089Z             {
2026-06-15T13:57:01.5397305Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T13:57:01.5397481Z               "line": 71
2026-06-15T13:57:01.5397661Z             },
2026-06-15T13:57:01.5397829Z             {
2026-06-15T13:57:01.5398057Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.5398233Z               "line": 79
2026-06-15T13:57:01.5398411Z             }
2026-06-15T13:57:01.5398586Z           ]
2026-06-15T13:57:01.5398750Z         },
2026-06-15T13:57:01.5398924Z         "int": {
2026-06-15T13:57:01.5399218Z           "complete": false,
2026-06-15T13:57:01.5399418Z           "evidence": []
2026-06-15T13:57:01.5399584Z         },
2026-06-15T13:57:01.5399753Z         "unit": {
2026-06-15T13:57:01.5399942Z           "complete": true,
2026-06-15T13:57:01.5400128Z           "evidence": [
2026-06-15T13:57:01.5400304Z             {
2026-06-15T13:57:01.5400533Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:57:01.5400721Z               "line": 289
2026-06-15T13:57:01.5400891Z             },
2026-06-15T13:57:01.5401054Z             {
2026-06-15T13:57:01.5401283Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:57:01.5401453Z               "line": 314
2026-06-15T13:57:01.5401624Z             },
2026-06-15T13:57:01.5401794Z             {
2026-06-15T13:57:01.5402023Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:57:01.5402217Z               "line": 350
2026-06-15T13:57:01.5402381Z             },
2026-06-15T13:57:01.5402556Z             {
2026-06-15T13:57:01.5402785Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:57:01.5402967Z               "line": 418
2026-06-15T13:57:01.5403143Z             },
2026-06-15T13:57:01.5403306Z             {
2026-06-15T13:57:01.5403539Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:57:01.5403710Z               "line": 429
2026-06-15T13:57:01.5403874Z             },
2026-06-15T13:57:01.5404044Z             {
2026-06-15T13:57:01.5404274Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:57:01.5404458Z               "line": 460
2026-06-15T13:57:01.5404626Z             },
2026-06-15T13:57:01.5404801Z             {
2026-06-15T13:57:01.5405025Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:57:01.5405193Z               "line": 471
2026-06-15T13:57:01.5405359Z             },
2026-06-15T13:57:01.5405527Z             {
2026-06-15T13:57:01.5405755Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T13:57:01.5405927Z               "line": 77
2026-06-15T13:57:01.5406104Z             },
2026-06-15T13:57:01.5406274Z             {
2026-06-15T13:57:01.5406500Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T13:57:01.5406670Z               "line": 97
2026-06-15T13:57:01.5406958Z             },
2026-06-15T13:57:01.5407130Z             {
2026-06-15T13:57:01.5407353Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T13:57:01.5407540Z               "line": 112
2026-06-15T13:57:01.5407707Z             },
2026-06-15T13:57:01.5407883Z             {
2026-06-15T13:57:01.5408099Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T13:57:01.5408278Z               "line": 123
2026-06-15T13:57:01.5408456Z             },
2026-06-15T13:57:01.5408617Z             {
2026-06-15T13:57:01.5408836Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T13:57:01.5409228Z               "line": 130
2026-06-15T13:57:01.5409442Z             },
2026-06-15T13:57:01.5409598Z             {
2026-06-15T13:57:01.5409830Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T13:57:01.5410012Z               "line": 145
2026-06-15T13:57:01.5410187Z             },
2026-06-15T13:57:01.5410360Z             {
2026-06-15T13:57:01.5410574Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T13:57:01.5410746Z               "line": 115
2026-06-15T13:57:01.5410918Z             },
2026-06-15T13:57:01.5411094Z             {
2026-06-15T13:57:01.5411309Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T13:57:01.5411485Z               "line": 130
2026-06-15T13:57:01.5411652Z             },
2026-06-15T13:57:01.5411823Z             {
2026-06-15T13:57:01.5412051Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.5412223Z               "line": 420
2026-06-15T13:57:01.5412397Z             }
2026-06-15T13:57:01.5412573Z           ]
2026-06-15T13:57:01.5412740Z         }
2026-06-15T13:57:01.5412917Z       }
2026-06-15T13:57:01.5413083Z     },
2026-06-15T13:57:01.5413255Z     {
2026-06-15T13:57:01.5413475Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
2026-06-15T13:57:01.5414876Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
2026-06-15T13:57:01.5415070Z       "requiredStages": [
2026-06-15T13:57:01.5415242Z         "doc",
2026-06-15T13:57:01.5415419Z         "impl",
2026-06-15T13:57:01.5415585Z         "unit"
2026-06-15T13:57:01.5415758Z       ],
2026-06-15T13:57:01.5415934Z       "stages": {
2026-06-15T13:57:01.5416106Z         "doc": {
2026-06-15T13:57:01.5416296Z           "complete": true,
2026-06-15T13:57:01.5416463Z           "evidence": [
2026-06-15T13:57:01.5416649Z             {
2026-06-15T13:57:01.5416858Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:57:01.5417036Z               "line": 367
2026-06-15T13:57:01.5417210Z             }
2026-06-15T13:57:01.5417382Z           ]
2026-06-15T13:57:01.5417551Z         },
2026-06-15T13:57:01.5417724Z         "impl": {
2026-06-15T13:57:01.5417914Z           "complete": true,
2026-06-15T13:57:01.5418091Z           "evidence": [
2026-06-15T13:57:01.5418267Z             {
2026-06-15T13:57:01.5418486Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.5418663Z               "line": 199
2026-06-15T13:57:01.5418843Z             },
2026-06-15T13:57:01.5419153Z             {
2026-06-15T13:57:01.5419396Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.5419574Z               "line": 303
2026-06-15T13:57:01.5419745Z             },
2026-06-15T13:57:01.5419923Z             {
2026-06-15T13:57:01.5420139Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.5420334Z               "line": 515
2026-06-15T13:57:01.5420500Z             },
2026-06-15T13:57:01.5420677Z             {
2026-06-15T13:57:01.5420887Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.5421067Z               "line": 530
2026-06-15T13:57:01.5421235Z             },
2026-06-15T13:57:01.5421405Z             {
2026-06-15T13:57:01.5421630Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.5421953Z               "line": 1127
2026-06-15T13:57:01.5422131Z             },
2026-06-15T13:57:01.5422302Z             {
2026-06-15T13:57:01.5422527Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.5422715Z               "line": 443
2026-06-15T13:57:01.5422886Z             },
2026-06-15T13:57:01.5423057Z             {
2026-06-15T13:57:01.5423281Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.5423467Z               "line": 590
2026-06-15T13:57:01.5423638Z             },
2026-06-15T13:57:01.5423910Z             {
2026-06-15T13:57:01.5424144Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.5424315Z               "line": 731
2026-06-15T13:57:01.5424487Z             }
2026-06-15T13:57:01.5424650Z           ]
2026-06-15T13:57:01.5424825Z         },
2026-06-15T13:57:01.5424994Z         "int": {
2026-06-15T13:57:01.5425179Z           "complete": false,
2026-06-15T13:57:01.5425366Z           "evidence": []
2026-06-15T13:57:01.5425536Z         },
2026-06-15T13:57:01.5425717Z         "unit": {
2026-06-15T13:57:01.5425897Z           "complete": true,
2026-06-15T13:57:01.5426075Z           "evidence": [
2026-06-15T13:57:01.5426241Z             {
2026-06-15T13:57:01.5426456Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.5426643Z               "line": 1155
2026-06-15T13:57:01.5426808Z             },
2026-06-15T13:57:01.5426976Z             {
2026-06-15T13:57:01.5427224Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
2026-06-15T13:57:01.5427423Z               "line": 30
2026-06-15T13:57:01.5427601Z             }
2026-06-15T13:57:01.5427770Z           ]
2026-06-15T13:57:01.5427947Z         }
2026-06-15T13:57:01.5428116Z       }
2026-06-15T13:57:01.5428289Z     },
2026-06-15T13:57:01.5428454Z     {
2026-06-15T13:57:01.5428674Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-15T13:57:01.5429219Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-15T13:57:01.5429437Z       "requiredStages": [
2026-06-15T13:57:01.5429618Z         "impl",
2026-06-15T13:57:01.5429786Z         "unit"
2026-06-15T13:57:01.5429952Z       ],
2026-06-15T13:57:01.5430121Z       "stages": {
2026-06-15T13:57:01.5430290Z         "doc": {
2026-06-15T13:57:01.5430478Z           "complete": true,
2026-06-15T13:57:01.5430647Z           "evidence": [
2026-06-15T13:57:01.5430824Z             {
2026-06-15T13:57:01.5431021Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:57:01.5431213Z               "line": 139
2026-06-15T13:57:01.5431379Z             }
2026-06-15T13:57:01.5431547Z           ]
2026-06-15T13:57:01.5431724Z         },
2026-06-15T13:57:01.5431895Z         "impl": {
2026-06-15T13:57:01.5432081Z           "complete": true,
2026-06-15T13:57:01.5432261Z           "evidence": [
2026-06-15T13:57:01.5432439Z             {
2026-06-15T13:57:01.5432648Z               "path": "crates/spt-store/src/db.rs",
2026-06-15T13:57:01.5432842Z               "line": 29
2026-06-15T13:57:01.5433016Z             },
2026-06-15T13:57:01.5433176Z             {
2026-06-15T13:57:01.5433395Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:57:01.5433564Z               "line": 101
2026-06-15T13:57:01.5433737Z             },
2026-06-15T13:57:01.5433907Z             {
2026-06-15T13:57:01.5434141Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:57:01.5434324Z               "line": 30
2026-06-15T13:57:01.5434489Z             },
2026-06-15T13:57:01.5434676Z             {
2026-06-15T13:57:01.5434890Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.5435077Z               "line": 48
2026-06-15T13:57:01.5435234Z             }
2026-06-15T13:57:01.5435410Z           ]
2026-06-15T13:57:01.5435578Z         },
2026-06-15T13:57:01.5435753Z         "int": {
2026-06-15T13:57:01.5435941Z           "complete": false,
2026-06-15T13:57:01.5436115Z           "evidence": []
2026-06-15T13:57:01.5436400Z         },
2026-06-15T13:57:01.5436573Z         "unit": {
2026-06-15T13:57:01.5436772Z           "complete": true,
2026-06-15T13:57:01.5436959Z           "evidence": [
2026-06-15T13:57:01.5437126Z             {
2026-06-15T13:57:01.5437354Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:57:01.5437527Z               "line": 162
2026-06-15T13:57:01.5437698Z             }
2026-06-15T13:57:01.5437870Z           ]
2026-06-15T13:57:01.5438060Z         }
2026-06-15T13:57:01.5438236Z       }
2026-06-15T13:57:01.5438402Z     },
2026-06-15T13:57:01.5438705Z     {
2026-06-15T13:57:01.5438925Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-15T13:57:01.5439673Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-15T13:57:01.5439859Z       "requiredStages": [
2026-06-15T13:57:01.5440046Z         "doc",
2026-06-15T13:57:01.5440221Z         "impl",
2026-06-15T13:57:01.5440404Z         "unit"
2026-06-15T13:57:01.5440570Z       ],
2026-06-15T13:57:01.5440737Z       "stages": {
2026-06-15T13:57:01.5440908Z         "doc": {
2026-06-15T13:57:01.5441090Z           "complete": true,
2026-06-15T13:57:01.5441274Z           "evidence": [
2026-06-15T13:57:01.5441444Z             {
2026-06-15T13:57:01.5441639Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:57:01.5441811Z               "line": 151
2026-06-15T13:57:01.5441983Z             }
2026-06-15T13:57:01.5442154Z           ]
2026-06-15T13:57:01.5442322Z         },
2026-06-15T13:57:01.5442492Z         "impl": {
2026-06-15T13:57:01.5442684Z           "complete": true,
2026-06-15T13:57:01.5442855Z           "evidence": [
2026-06-15T13:57:01.5443022Z             {
2026-06-15T13:57:01.5443247Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:57:01.5443417Z               "line": 22
2026-06-15T13:57:01.5443586Z             }
2026-06-15T13:57:01.5443760Z           ]
2026-06-15T13:57:01.5443922Z         },
2026-06-15T13:57:01.5444100Z         "int": {
2026-06-15T13:57:01.5444287Z           "complete": false,
2026-06-15T13:57:01.5444463Z           "evidence": []
2026-06-15T13:57:01.5444640Z         },
2026-06-15T13:57:01.5444806Z         "unit": {
2026-06-15T13:57:01.5444993Z           "complete": true,
2026-06-15T13:57:01.5445170Z           "evidence": [
2026-06-15T13:57:01.5445341Z             {
2026-06-15T13:57:01.5445575Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:57:01.5445746Z               "line": 298
2026-06-15T13:57:01.5445922Z             }
2026-06-15T13:57:01.5446095Z           ]
2026-06-15T13:57:01.5446270Z         }
2026-06-15T13:57:01.5446458Z       }
2026-06-15T13:57:01.5446622Z     },
2026-06-15T13:57:01.5446794Z     {
2026-06-15T13:57:01.5447008Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-15T13:57:01.5447768Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-15T13:57:01.5447957Z       "requiredStages": [
2026-06-15T13:57:01.5448129Z         "impl",
2026-06-15T13:57:01.5448296Z         "unit"
2026-06-15T13:57:01.5448468Z       ],
2026-06-15T13:57:01.5448634Z       "stages": {
2026-06-15T13:57:01.5448806Z         "doc": {
2026-06-15T13:57:01.5449063Z           "complete": true,
2026-06-15T13:57:01.5449246Z           "evidence": [
2026-06-15T13:57:01.5449419Z             {
2026-06-15T13:57:01.5449632Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:57:01.5449804Z               "line": 145
2026-06-15T13:57:01.5449972Z             }
2026-06-15T13:57:01.5450142Z           ]
2026-06-15T13:57:01.5450311Z         },
2026-06-15T13:57:01.5450481Z         "impl": {
2026-06-15T13:57:01.5450677Z           "complete": true,
2026-06-15T13:57:01.5450848Z           "evidence": [
2026-06-15T13:57:01.5451015Z             {
2026-06-15T13:57:01.5451265Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T13:57:01.5451445Z               "line": 160
2026-06-15T13:57:01.5451735Z             },
2026-06-15T13:57:01.5451906Z             {
2026-06-15T13:57:01.5456020Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.5456287Z               "line": 200
2026-06-15T13:57:01.5456459Z             },
2026-06-15T13:57:01.5456616Z             {
2026-06-15T13:57:01.5456864Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5457056Z               "line": 298
2026-06-15T13:57:01.5457239Z             },
2026-06-15T13:57:01.5457407Z             {
2026-06-15T13:57:01.5457641Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T13:57:01.5457984Z               "line": 20
2026-06-15T13:57:01.5458160Z             }
2026-06-15T13:57:01.5458323Z           ]
2026-06-15T13:57:01.5458493Z         },
2026-06-15T13:57:01.5458662Z         "int": {
2026-06-15T13:57:01.5458851Z           "complete": false,
2026-06-15T13:57:01.5459128Z           "evidence": []
2026-06-15T13:57:01.5459292Z         },
2026-06-15T13:57:01.5459470Z         "unit": {
2026-06-15T13:57:01.5459646Z           "complete": true,
2026-06-15T13:57:01.5459825Z           "evidence": [
2026-06-15T13:57:01.5459994Z             {
2026-06-15T13:57:01.5460251Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.5460436Z               "line": 885
2026-06-15T13:57:01.5460603Z             },
2026-06-15T13:57:01.5460779Z             {
2026-06-15T13:57:01.5461022Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-15T13:57:01.5461205Z               "line": 88
2026-06-15T13:57:01.5461385Z             },
2026-06-15T13:57:01.5461552Z             {
2026-06-15T13:57:01.5461791Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5461961Z               "line": 819
2026-06-15T13:57:01.5462130Z             },
2026-06-15T13:57:01.5462285Z             {
2026-06-15T13:57:01.5462523Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5462701Z               "line": 838
2026-06-15T13:57:01.5462875Z             },
2026-06-15T13:57:01.5463045Z             {
2026-06-15T13:57:01.5463284Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:57:01.5463466Z               "line": 279
2026-06-15T13:57:01.5463622Z             },
2026-06-15T13:57:01.5463799Z             {
2026-06-15T13:57:01.5464023Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T13:57:01.5464199Z               "line": 82
2026-06-15T13:57:01.5464363Z             },
2026-06-15T13:57:01.5464528Z             {
2026-06-15T13:57:01.5464748Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T13:57:01.5464932Z               "line": 99
2026-06-15T13:57:01.5465103Z             },
2026-06-15T13:57:01.5465268Z             {
2026-06-15T13:57:01.5465479Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T13:57:01.5465656Z               "line": 119
2026-06-15T13:57:01.5465822Z             }
2026-06-15T13:57:01.5465990Z           ]
2026-06-15T13:57:01.5466160Z         }
2026-06-15T13:57:01.5466338Z       }
2026-06-15T13:57:01.5466508Z     },
2026-06-15T13:57:01.5466662Z     {
2026-06-15T13:57:01.5466876Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-15T13:57:01.5469306Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-15T13:57:01.5469503Z       "requiredStages": [
2026-06-15T13:57:01.5469669Z         "doc",
2026-06-15T13:57:01.5469832Z         "impl",
2026-06-15T13:57:01.5470011Z         "unit"
2026-06-15T13:57:01.5470178Z       ],
2026-06-15T13:57:01.5470343Z       "stages": {
2026-06-15T13:57:01.5470515Z         "doc": {
2026-06-15T13:57:01.5470853Z           "complete": true,
2026-06-15T13:57:01.5471029Z           "evidence": [
2026-06-15T13:57:01.5471187Z             {
2026-06-15T13:57:01.5471407Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:57:01.5471592Z               "line": 157
2026-06-15T13:57:01.5471765Z             }
2026-06-15T13:57:01.5471921Z           ]
2026-06-15T13:57:01.5472099Z         },
2026-06-15T13:57:01.5472278Z         "impl": {
2026-06-15T13:57:01.5472460Z           "complete": true,
2026-06-15T13:57:01.5472632Z           "evidence": [
2026-06-15T13:57:01.5472803Z             {
2026-06-15T13:57:01.5473172Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T13:57:01.5473353Z               "line": 137
2026-06-15T13:57:01.5473539Z             },
2026-06-15T13:57:01.5473711Z             {
2026-06-15T13:57:01.5473959Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.5474144Z               "line": 512
2026-06-15T13:57:01.5474312Z             },
2026-06-15T13:57:01.5474488Z             {
2026-06-15T13:57:01.5474736Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.5474908Z               "line": 519
2026-06-15T13:57:01.5475074Z             },
2026-06-15T13:57:01.5475242Z             {
2026-06-15T13:57:01.5475483Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5475654Z               "line": 227
2026-06-15T13:57:01.5475828Z             }
2026-06-15T13:57:01.5475997Z           ]
2026-06-15T13:57:01.5476168Z         },
2026-06-15T13:57:01.5476345Z         "int": {
2026-06-15T13:57:01.5476541Z           "complete": false,
2026-06-15T13:57:01.5476725Z           "evidence": []
2026-06-15T13:57:01.5476893Z         },
2026-06-15T13:57:01.5477064Z         "unit": {
2026-06-15T13:57:01.5477255Z           "complete": true,
2026-06-15T13:57:01.5477426Z           "evidence": [
2026-06-15T13:57:01.5477598Z             {
2026-06-15T13:57:01.5477833Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.5478023Z               "line": 1515
2026-06-15T13:57:01.5478190Z             },
2026-06-15T13:57:01.5478359Z             {
2026-06-15T13:57:01.5478613Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.5478785Z               "line": 1573
2026-06-15T13:57:01.5479037Z             },
2026-06-15T13:57:01.5479209Z             {
2026-06-15T13:57:01.5479443Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5479614Z               "line": 851
2026-06-15T13:57:01.5479791Z             }
2026-06-15T13:57:01.5479952Z           ]
2026-06-15T13:57:01.5480125Z         }
2026-06-15T13:57:01.5480291Z       }
2026-06-15T13:57:01.5480459Z     },
2026-06-15T13:57:01.5480633Z     {
2026-06-15T13:57:01.5480851Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-15T13:57:01.5481189Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-15T13:57:01.5481381Z       "requiredStages": [
2026-06-15T13:57:01.5481546Z         "impl",
2026-06-15T13:57:01.5481714Z         "unit"
2026-06-15T13:57:01.5481880Z       ],
2026-06-15T13:57:01.5482057Z       "stages": {
2026-06-15T13:57:01.5482224Z         "doc": {
2026-06-15T13:57:01.5482405Z           "complete": false,
2026-06-15T13:57:01.5482587Z           "evidence": []
2026-06-15T13:57:01.5482757Z         },
2026-06-15T13:57:01.5482930Z         "impl": {
2026-06-15T13:57:01.5483111Z           "complete": true,
2026-06-15T13:57:01.5483284Z           "evidence": [
2026-06-15T13:57:01.5483453Z             {
2026-06-15T13:57:01.5483676Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T13:57:01.5483861Z               "line": 15
2026-06-15T13:57:01.5484033Z             },
2026-06-15T13:57:01.5484199Z             {
2026-06-15T13:57:01.5484418Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:57:01.5484600Z               "line": 55
2026-06-15T13:57:01.5484766Z             },
2026-06-15T13:57:01.5484938Z             {
2026-06-15T13:57:01.5485163Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:57:01.5485449Z               "line": 66
2026-06-15T13:57:01.5485624Z             },
2026-06-15T13:57:01.5485797Z             {
2026-06-15T13:57:01.5486029Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:57:01.5486210Z               "line": 115
2026-06-15T13:57:01.5486379Z             },
2026-06-15T13:57:01.5486557Z             {
2026-06-15T13:57:01.5486776Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:57:01.5486961Z               "line": 138
2026-06-15T13:57:01.5487233Z             }
2026-06-15T13:57:01.5487411Z           ]
2026-06-15T13:57:01.5487577Z         },
2026-06-15T13:57:01.5487750Z         "int": {
2026-06-15T13:57:01.5487939Z           "complete": false,
2026-06-15T13:57:01.5488120Z           "evidence": []
2026-06-15T13:57:01.5488282Z         },
2026-06-15T13:57:01.5488449Z         "unit": {
2026-06-15T13:57:01.5488636Z           "complete": true,
2026-06-15T13:57:01.5488816Z           "evidence": [
2026-06-15T13:57:01.5489054Z             {
2026-06-15T13:57:01.5489278Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T13:57:01.5489450Z               "line": 149
2026-06-15T13:57:01.5489626Z             },
2026-06-15T13:57:01.5489793Z             {
2026-06-15T13:57:01.5490003Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T13:57:01.5490184Z               "line": 155
2026-06-15T13:57:01.5490366Z             },
2026-06-15T13:57:01.5490526Z             {
2026-06-15T13:57:01.5490746Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T13:57:01.5490929Z               "line": 169
2026-06-15T13:57:01.5491094Z             },
2026-06-15T13:57:01.5491265Z             {
2026-06-15T13:57:01.5491477Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T13:57:01.5491650Z               "line": 178
2026-06-15T13:57:01.5491820Z             },
2026-06-15T13:57:01.5491988Z             {
2026-06-15T13:57:01.5492217Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:57:01.5492398Z               "line": 195
2026-06-15T13:57:01.5492560Z             },
2026-06-15T13:57:01.5492731Z             {
2026-06-15T13:57:01.5492956Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:57:01.5493137Z               "line": 208
2026-06-15T13:57:01.5493308Z             },
2026-06-15T13:57:01.5493477Z             {
2026-06-15T13:57:01.5493690Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:57:01.5493863Z               "line": 271
2026-06-15T13:57:01.5494041Z             },
2026-06-15T13:57:01.5494208Z             {
2026-06-15T13:57:01.5494440Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:57:01.5494621Z               "line": 290
2026-06-15T13:57:01.5494794Z             },
2026-06-15T13:57:01.5494964Z             {
2026-06-15T13:57:01.5495184Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:57:01.5495365Z               "line": 319
2026-06-15T13:57:01.5495541Z             }
2026-06-15T13:57:01.5495709Z           ]
2026-06-15T13:57:01.5495879Z         }
2026-06-15T13:57:01.5496052Z       }
2026-06-15T13:57:01.5496218Z     },
2026-06-15T13:57:01.5496391Z     {
2026-06-15T13:57:01.5496608Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-15T13:57:01.5497088Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-15T13:57:01.5497278Z       "requiredStages": [
2026-06-15T13:57:01.5497446Z         "impl",
2026-06-15T13:57:01.5497612Z         "unit",
2026-06-15T13:57:01.5497784Z         "int"
2026-06-15T13:57:01.5497961Z       ],
2026-06-15T13:57:01.5498127Z       "stages": {
2026-06-15T13:57:01.5498290Z         "doc": {
2026-06-15T13:57:01.5498484Z           "complete": false,
2026-06-15T13:57:01.5498662Z           "evidence": []
2026-06-15T13:57:01.5498833Z         },
2026-06-15T13:57:01.5499071Z         "impl": {
2026-06-15T13:57:01.5499259Z           "complete": true,
2026-06-15T13:57:01.5499581Z           "evidence": [
2026-06-15T13:57:01.5499743Z             {
2026-06-15T13:57:01.5499967Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.5500167Z               "line": 447
2026-06-15T13:57:01.5500339Z             },
2026-06-15T13:57:01.5500506Z             {
2026-06-15T13:57:01.5500758Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.5500935Z               "line": 867
2026-06-15T13:57:01.5501096Z             },
2026-06-15T13:57:01.5501264Z             {
2026-06-15T13:57:01.5501499Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.5501806Z               "line": 912
2026-06-15T13:57:01.5501976Z             },
2026-06-15T13:57:01.5502148Z             {
2026-06-15T13:57:01.5502375Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.5502572Z               "line": 937
2026-06-15T13:57:01.5502748Z             },
2026-06-15T13:57:01.5502915Z             {
2026-06-15T13:57:01.5503144Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.5503324Z               "line": 987
2026-06-15T13:57:01.5503506Z             },
2026-06-15T13:57:01.5503673Z             {
2026-06-15T13:57:01.5503897Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.5504079Z               "line": 1113
2026-06-15T13:57:01.5504241Z             },
2026-06-15T13:57:01.5504428Z             {
2026-06-15T13:57:01.5504649Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.5504819Z               "line": 1244
2026-06-15T13:57:01.5504995Z             },
2026-06-15T13:57:01.5505172Z             {
2026-06-15T13:57:01.5505420Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.5505605Z               "line": 1292
2026-06-15T13:57:01.5505778Z             },
2026-06-15T13:57:01.5505944Z             {
2026-06-15T13:57:01.5506177Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T13:57:01.5506383Z               "line": 46
2026-06-15T13:57:01.5506559Z             },
2026-06-15T13:57:01.5506731Z             {
2026-06-15T13:57:01.5506951Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T13:57:01.5507140Z               "line": 167
2026-06-15T13:57:01.5507312Z             },
2026-06-15T13:57:01.5507490Z             {
2026-06-15T13:57:01.5507701Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T13:57:01.5507872Z               "line": 132
2026-06-15T13:57:01.5508044Z             },
2026-06-15T13:57:01.5508206Z             {
2026-06-15T13:57:01.5508439Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.5508616Z               "line": 137
2026-06-15T13:57:01.5508778Z             },
2026-06-15T13:57:01.5509040Z             {
2026-06-15T13:57:01.5509250Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.5509441Z               "line": 183
2026-06-15T13:57:01.5509612Z             }
2026-06-15T13:57:01.5509790Z           ]
2026-06-15T13:57:01.5509969Z         },
2026-06-15T13:57:01.5510146Z         "int": {
2026-06-15T13:57:01.5510331Z           "complete": true,
2026-06-15T13:57:01.5510518Z           "evidence": [
2026-06-15T13:57:01.5510679Z             {
2026-06-15T13:57:01.5510927Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-15T13:57:01.5511110Z               "line": 27
2026-06-15T13:57:01.5511280Z             },
2026-06-15T13:57:01.5511453Z             {
2026-06-15T13:57:01.5511696Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T13:57:01.5511871Z               "line": 129
2026-06-15T13:57:01.5512054Z             },
2026-06-15T13:57:01.5512224Z             {
2026-06-15T13:57:01.5512456Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-15T13:57:01.5512635Z               "line": 200
2026-06-15T13:57:01.5512804Z             }
2026-06-15T13:57:01.5512970Z           ]
2026-06-15T13:57:01.5513141Z         },
2026-06-15T13:57:01.5513318Z         "unit": {
2026-06-15T13:57:01.5513503Z           "complete": true,
2026-06-15T13:57:01.5513795Z           "evidence": [
2026-06-15T13:57:01.5513962Z             {
2026-06-15T13:57:01.5514223Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T13:57:01.5514405Z               "line": 313
2026-06-15T13:57:01.5514572Z             },
2026-06-15T13:57:01.5514743Z             {
2026-06-15T13:57:01.5514959Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T13:57:01.5515128Z               "line": 345
2026-06-15T13:57:01.5515300Z             },
2026-06-15T13:57:01.5515464Z             {
2026-06-15T13:57:01.5515685Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T13:57:01.5515966Z               "line": 366
2026-06-15T13:57:01.5516132Z             },
2026-06-15T13:57:01.5516309Z             {
2026-06-15T13:57:01.5516539Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:57:01.5516733Z               "line": 508
2026-06-15T13:57:01.5516901Z             },
2026-06-15T13:57:01.5517071Z             {
2026-06-15T13:57:01.5517291Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T13:57:01.5517469Z               "line": 289
2026-06-15T13:57:01.5517634Z             },
2026-06-15T13:57:01.5517800Z             {
2026-06-15T13:57:01.5518026Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T13:57:01.5518204Z               "line": 230
2026-06-15T13:57:01.5518379Z             },
2026-06-15T13:57:01.5518542Z             {
2026-06-15T13:57:01.5519157Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.5519721Z               "line": 526
2026-06-15T13:57:01.5520130Z             },
2026-06-15T13:57:01.5520492Z             {
2026-06-15T13:57:01.5520891Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.5521383Z               "line": 556
2026-06-15T13:57:01.5521773Z             }
2026-06-15T13:57:01.5522122Z           ]
2026-06-15T13:57:01.5522508Z         }
2026-06-15T13:57:01.5522970Z       }
2026-06-15T13:57:01.5523311Z     },
2026-06-15T13:57:01.5523654Z     {
2026-06-15T13:57:01.5524044Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-15T13:57:01.5527307Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-15T13:57:01.5530151Z       "requiredStages": [
2026-06-15T13:57:01.5530557Z         "doc",
2026-06-15T13:57:01.5530915Z         "impl",
2026-06-15T13:57:01.5531275Z         "unit"
2026-06-15T13:57:01.5531638Z       ],
2026-06-15T13:57:01.5532005Z       "stages": {
2026-06-15T13:57:01.5532377Z         "doc": {
2026-06-15T13:57:01.5532767Z           "complete": true,
2026-06-15T13:57:01.5533174Z           "evidence": [
2026-06-15T13:57:01.5533558Z             {
2026-06-15T13:57:01.5533942Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:57:01.5534424Z               "line": 307
2026-06-15T13:57:01.5534816Z             }
2026-06-15T13:57:01.5535177Z           ]
2026-06-15T13:57:01.5535520Z         },
2026-06-15T13:57:01.5535858Z         "impl": {
2026-06-15T13:57:01.5536249Z           "complete": true,
2026-06-15T13:57:01.5536661Z           "evidence": [
2026-06-15T13:57:01.5537043Z             {
2026-06-15T13:57:01.5537615Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T13:57:01.5538144Z               "line": 33
2026-06-15T13:57:01.5538540Z             },
2026-06-15T13:57:01.5538906Z             {
2026-06-15T13:57:01.5539414Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T13:57:01.5539930Z               "line": 39
2026-06-15T13:57:01.5540315Z             }
2026-06-15T13:57:01.5540792Z           ]
2026-06-15T13:57:01.5541136Z         },
2026-06-15T13:57:01.5541470Z         "int": {
2026-06-15T13:57:01.5541840Z           "complete": false,
2026-06-15T13:57:01.5542251Z           "evidence": []
2026-06-15T13:57:01.5542627Z         },
2026-06-15T13:57:01.5542970Z         "unit": {
2026-06-15T13:57:01.5543347Z           "complete": true,
2026-06-15T13:57:01.5543758Z           "evidence": [
2026-06-15T13:57:01.5544137Z             {
2026-06-15T13:57:01.5544564Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T13:57:01.5545212Z               "line": 95
2026-06-15T13:57:01.5545580Z             }
2026-06-15T13:57:01.5545928Z           ]
2026-06-15T13:57:01.5546268Z         }
2026-06-15T13:57:01.5546611Z       }
2026-06-15T13:57:01.5546947Z     },
2026-06-15T13:57:01.5547284Z     {
2026-06-15T13:57:01.5547642Z       "id": "REQ-HAZARD-SELF-ELEVATE",
2026-06-15T13:57:01.5551543Z       "title": "Self-elevation (REQ-ELEVATE-1) re-runs the EXACT original invocation with the binary's ABSOLUTE exe path — never widening privilege scope, never adding/altering args, never via a PATH-resolved bare name, never via a shell-interpolated command string (argv-array only, no `sh -c`); the elevated child drops state back to the user (composes with the 5.7 de-elevation) and NEVER re-elevates (loop-safe: decide_elevation_path returns AlreadyElevated whenever the process is already Elevated, on every OS). The user's UAC/polkit/sudo prompt is the only consent gate — we never bypass it; the print-hint floor prints the absolute-path command too. The unprivileged parent never depends on (pipes/captures) the privileged child's stdout.",
2026-06-15T13:57:01.5555006Z       "requiredStages": [
2026-06-15T13:57:01.5555406Z         "unit"
2026-06-15T13:57:01.5555758Z       ],
2026-06-15T13:57:01.5556106Z       "stages": {
2026-06-15T13:57:01.5556464Z         "doc": {
2026-06-15T13:57:01.5556856Z           "complete": false,
2026-06-15T13:57:01.5557275Z           "evidence": []
2026-06-15T13:57:01.5557672Z         },
2026-06-15T13:57:01.5558005Z         "impl": {
2026-06-15T13:57:01.5558382Z           "complete": true,
2026-06-15T13:57:01.5558803Z           "evidence": [
2026-06-15T13:57:01.5559260Z             {
2026-06-15T13:57:01.5559646Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.5560131Z               "line": 3082
2026-06-15T13:57:01.5560525Z             },
2026-06-15T13:57:01.5560868Z             {
2026-06-15T13:57:01.5561254Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.5561717Z               "line": 3134
2026-06-15T13:57:01.5562127Z             },
2026-06-15T13:57:01.5562470Z             {
2026-06-15T13:57:01.5562850Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.5563309Z               "line": 3179
2026-06-15T13:57:01.5563690Z             },
2026-06-15T13:57:01.5564038Z             {
2026-06-15T13:57:01.5564434Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.5564916Z               "line": 92
2026-06-15T13:57:01.5565313Z             },
2026-06-15T13:57:01.5565670Z             {
2026-06-15T13:57:01.5566061Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.5566566Z               "line": 148
2026-06-15T13:57:01.5566962Z             },
2026-06-15T13:57:01.5567315Z             {
2026-06-15T13:57:01.5567702Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.5568199Z               "line": 192
2026-06-15T13:57:01.5568584Z             },
2026-06-15T13:57:01.5568933Z             {
2026-06-15T13:57:01.5569415Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.5569915Z               "line": 200
2026-06-15T13:57:01.5570298Z             },
2026-06-15T13:57:01.5570649Z             {
2026-06-15T13:57:01.5571038Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.5571523Z               "line": 211
2026-06-15T13:57:01.5571911Z             },
2026-06-15T13:57:01.5572254Z             {
2026-06-15T13:57:01.5572634Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.5573259Z               "line": 265
2026-06-15T13:57:01.5573654Z             },
2026-06-15T13:57:01.5574002Z             {
2026-06-15T13:57:01.5574393Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.5574865Z               "line": 279
2026-06-15T13:57:01.5575242Z             }
2026-06-15T13:57:01.5575603Z           ]
2026-06-15T13:57:01.5575944Z         },
2026-06-15T13:57:01.5576287Z         "int": {
2026-06-15T13:57:01.5576654Z           "complete": false,
2026-06-15T13:57:01.5577070Z           "evidence": []
2026-06-15T13:57:01.5577584Z         },
2026-06-15T13:57:01.5577928Z         "unit": {
2026-06-15T13:57:01.5578287Z           "complete": true,
2026-06-15T13:57:01.5578694Z           "evidence": [
2026-06-15T13:57:01.5579154Z             {
2026-06-15T13:57:01.5579541Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.5580022Z               "line": 419
2026-06-15T13:57:01.5580418Z             },
2026-06-15T13:57:01.5580766Z             {
2026-06-15T13:57:01.5581156Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.5581641Z               "line": 470
2026-06-15T13:57:01.5582021Z             },
2026-06-15T13:57:01.5582355Z             {
2026-06-15T13:57:01.5582747Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.5583232Z               "line": 499
2026-06-15T13:57:01.5583624Z             },
2026-06-15T13:57:01.5583966Z             {
2026-06-15T13:57:01.5584362Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.5584853Z               "line": 526
2026-06-15T13:57:01.5585239Z             }
2026-06-15T13:57:01.5585587Z           ]
2026-06-15T13:57:01.5585926Z         }
2026-06-15T13:57:01.5586268Z       }
2026-06-15T13:57:01.5586604Z     },
2026-06-15T13:57:01.5586939Z     {
2026-06-15T13:57:01.5587311Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-15T13:57:01.5587954Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-15T13:57:01.5588589Z       "requiredStages": [
2026-06-15T13:57:01.5589078Z         "impl",
2026-06-15T13:57:01.5589428Z         "unit"
2026-06-15T13:57:01.5589781Z       ],
2026-06-15T13:57:01.5590121Z       "stages": {
2026-06-15T13:57:01.5590478Z         "doc": {
2026-06-15T13:57:01.5590860Z           "complete": false,
2026-06-15T13:57:01.5591307Z           "evidence": []
2026-06-15T13:57:01.5591707Z         },
2026-06-15T13:57:01.5592062Z         "impl": {
2026-06-15T13:57:01.5592435Z           "complete": true,
2026-06-15T13:57:01.5592835Z           "evidence": [
2026-06-15T13:57:01.5593230Z             {
2026-06-15T13:57:01.5593660Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.5598792Z               "line": 62
2026-06-15T13:57:01.5599941Z             },
2026-06-15T13:57:01.5600322Z             {
2026-06-15T13:57:01.5600743Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.5601257Z               "line": 71
2026-06-15T13:57:01.5601654Z             },
2026-06-15T13:57:01.5601997Z             {
2026-06-15T13:57:01.5602413Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.5602947Z               "line": 80
2026-06-15T13:57:01.5603333Z             },
2026-06-15T13:57:01.5603672Z             {
2026-06-15T13:57:01.5604091Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.5604607Z               "line": 88
2026-06-15T13:57:01.5604996Z             },
2026-06-15T13:57:01.5605348Z             {
2026-06-15T13:57:01.5605754Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5606254Z               "line": 33
2026-06-15T13:57:01.5606627Z             },
2026-06-15T13:57:01.5606965Z             {
2026-06-15T13:57:01.5607354Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5607836Z               "line": 65
2026-06-15T13:57:01.5608202Z             },
2026-06-15T13:57:01.5608554Z             {
2026-06-15T13:57:01.5609241Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5609770Z               "line": 74
2026-06-15T13:57:01.5610161Z             },
2026-06-15T13:57:01.5610506Z             {
2026-06-15T13:57:01.5610907Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5611384Z               "line": 93
2026-06-15T13:57:01.5611755Z             },
2026-06-15T13:57:01.5612103Z             {
2026-06-15T13:57:01.5612505Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5612992Z               "line": 102
2026-06-15T13:57:01.5613507Z             },
2026-06-15T13:57:01.5613860Z             {
2026-06-15T13:57:01.5614260Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5614728Z               "line": 111
2026-06-15T13:57:01.5615110Z             },
2026-06-15T13:57:01.5615458Z             {
2026-06-15T13:57:01.5615862Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5616353Z               "line": 122
2026-06-15T13:57:01.5616753Z             },
2026-06-15T13:57:01.5617088Z             {
2026-06-15T13:57:01.5617477Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5617968Z               "line": 140
2026-06-15T13:57:01.5618357Z             },
2026-06-15T13:57:01.5618709Z             {
2026-06-15T13:57:01.5619167Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5619772Z               "line": 149
2026-06-15T13:57:01.5620179Z             },
2026-06-15T13:57:01.5620556Z             {
2026-06-15T13:57:01.5621056Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5621586Z               "line": 158
2026-06-15T13:57:01.5622082Z             },
2026-06-15T13:57:01.5622469Z             {
2026-06-15T13:57:01.5622935Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5623421Z               "line": 169
2026-06-15T13:57:01.5623820Z             },
2026-06-15T13:57:01.5624158Z             {
2026-06-15T13:57:01.5624610Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5625307Z               "line": 177
2026-06-15T13:57:01.5625694Z             },
2026-06-15T13:57:01.5626056Z             {
2026-06-15T13:57:01.5626460Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5626956Z               "line": 186
2026-06-15T13:57:01.5627333Z             },
2026-06-15T13:57:01.5627680Z             {
2026-06-15T13:57:01.5628071Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5628551Z               "line": 195
2026-06-15T13:57:01.5629017Z             },
2026-06-15T13:57:01.5629412Z             {
2026-06-15T13:57:01.5629814Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5630323Z               "line": 204
2026-06-15T13:57:01.5630705Z             },
2026-06-15T13:57:01.5631044Z             {
2026-06-15T13:57:01.5631438Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5631921Z               "line": 216
2026-06-15T13:57:01.5632312Z             },
2026-06-15T13:57:01.5632656Z             {
2026-06-15T13:57:01.5633053Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5633538Z               "line": 223
2026-06-15T13:57:01.5633923Z             },
2026-06-15T13:57:01.5634269Z             {
2026-06-15T13:57:01.5634666Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5635151Z               "line": 232
2026-06-15T13:57:01.5635533Z             },
2026-06-15T13:57:01.5635882Z             {
2026-06-15T13:57:01.5636277Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5636781Z               "line": 239
2026-06-15T13:57:01.5637168Z             },
2026-06-15T13:57:01.5637512Z             {
2026-06-15T13:57:01.5637902Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5638383Z               "line": 306
2026-06-15T13:57:01.5638766Z             },
2026-06-15T13:57:01.5639183Z             {
2026-06-15T13:57:01.5639596Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5640220Z               "line": 318
2026-06-15T13:57:01.5640601Z             },
2026-06-15T13:57:01.5640935Z             {
2026-06-15T13:57:01.5641347Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5641831Z               "line": 405
2026-06-15T13:57:01.5642215Z             }
2026-06-15T13:57:01.5642549Z           ]
2026-06-15T13:57:01.5642887Z         },
2026-06-15T13:57:01.5643236Z         "int": {
2026-06-15T13:57:01.5643604Z           "complete": false,
2026-06-15T13:57:01.5644021Z           "evidence": []
2026-06-15T13:57:01.5644531Z         },
2026-06-15T13:57:01.5644877Z         "unit": {
2026-06-15T13:57:01.5645245Z           "complete": true,
2026-06-15T13:57:01.5645645Z           "evidence": [
2026-06-15T13:57:01.5646026Z             {
2026-06-15T13:57:01.5646428Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5646932Z               "line": 487
2026-06-15T13:57:01.5647326Z             },
2026-06-15T13:57:01.5647684Z             {
2026-06-15T13:57:01.5648072Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5648557Z               "line": 528
2026-06-15T13:57:01.5649016Z             },
2026-06-15T13:57:01.5649388Z             {
2026-06-15T13:57:01.5649789Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5650295Z               "line": 541
2026-06-15T13:57:01.5650695Z             },
2026-06-15T13:57:01.5651039Z             {
2026-06-15T13:57:01.5651439Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5651935Z               "line": 627
2026-06-15T13:57:01.5652321Z             }
2026-06-15T13:57:01.5652666Z           ]
2026-06-15T13:57:01.5653019Z         }
2026-06-15T13:57:01.5653361Z       }
2026-06-15T13:57:01.5653704Z     },
2026-06-15T13:57:01.5654029Z     {
2026-06-15T13:57:01.5654387Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-15T13:57:01.5655024Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-15T13:57:01.5655675Z       "requiredStages": [
2026-06-15T13:57:01.5656072Z         "impl",
2026-06-15T13:57:01.5656421Z         "unit"
2026-06-15T13:57:01.5656777Z       ],
2026-06-15T13:57:01.5657125Z       "stages": {
2026-06-15T13:57:01.5657482Z         "doc": {
2026-06-15T13:57:01.5657849Z           "complete": false,
2026-06-15T13:57:01.5658264Z           "evidence": []
2026-06-15T13:57:01.5658646Z         },
2026-06-15T13:57:01.5659051Z         "impl": {
2026-06-15T13:57:01.5659432Z           "complete": true,
2026-06-15T13:57:01.5659842Z           "evidence": [
2026-06-15T13:57:01.5660223Z             {
2026-06-15T13:57:01.5660626Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:57:01.5661116Z               "line": 152
2026-06-15T13:57:01.5661504Z             },
2026-06-15T13:57:01.5661856Z             {
2026-06-15T13:57:01.5662256Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.5662773Z               "line": 167
2026-06-15T13:57:01.5663165Z             }
2026-06-15T13:57:01.5663522Z           ]
2026-06-15T13:57:01.5663865Z         },
2026-06-15T13:57:01.5664208Z         "int": {
2026-06-15T13:57:01.5664580Z           "complete": false,
2026-06-15T13:57:01.5665001Z           "evidence": []
2026-06-15T13:57:01.5665373Z         },
2026-06-15T13:57:01.5665732Z         "unit": {
2026-06-15T13:57:01.5666103Z           "complete": true,
2026-06-15T13:57:01.5666507Z           "evidence": [
2026-06-15T13:57:01.5666894Z             {
2026-06-15T13:57:01.5667375Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:57:01.5667878Z               "line": 274
2026-06-15T13:57:01.5668273Z             },
2026-06-15T13:57:01.5668630Z             {
2026-06-15T13:57:01.5669110Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.5669611Z               "line": 712
2026-06-15T13:57:01.5670001Z             },
2026-06-15T13:57:01.5670345Z             {
2026-06-15T13:57:01.5670749Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.5671391Z               "line": 725
2026-06-15T13:57:01.5671782Z             }
2026-06-15T13:57:01.5672125Z           ]
2026-06-15T13:57:01.5672454Z         }
2026-06-15T13:57:01.5672792Z       }
2026-06-15T13:57:01.5673121Z     },
2026-06-15T13:57:01.5673460Z     {
2026-06-15T13:57:01.5673834Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-15T13:57:01.5674382Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-15T13:57:01.5674911Z       "requiredStages": [
2026-06-15T13:57:01.5675312Z         "impl",
2026-06-15T13:57:01.5675793Z         "unit"
2026-06-15T13:57:01.5676150Z       ],
2026-06-15T13:57:01.5676490Z       "stages": {
2026-06-15T13:57:01.5676859Z         "doc": {
2026-06-15T13:57:01.5677230Z           "complete": false,
2026-06-15T13:57:01.5677640Z           "evidence": []
2026-06-15T13:57:01.5678035Z         },
2026-06-15T13:57:01.5678369Z         "impl": {
2026-06-15T13:57:01.5678738Z           "complete": true,
2026-06-15T13:57:01.5679237Z           "evidence": [
2026-06-15T13:57:01.5679627Z             {
2026-06-15T13:57:01.5680033Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.5680534Z               "line": 114
2026-06-15T13:57:01.5680924Z             },
2026-06-15T13:57:01.5681275Z             {
2026-06-15T13:57:01.5681689Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.5682194Z               "line": 481
2026-06-15T13:57:01.5682586Z             }
2026-06-15T13:57:01.5682948Z           ]
2026-06-15T13:57:01.5683306Z         },
2026-06-15T13:57:01.5683663Z         "int": {
2026-06-15T13:57:01.5684034Z           "complete": false,
2026-06-15T13:57:01.5684445Z           "evidence": []
2026-06-15T13:57:01.5684828Z         },
2026-06-15T13:57:01.5685177Z         "unit": {
2026-06-15T13:57:01.5685548Z           "complete": true,
2026-06-15T13:57:01.5685962Z           "evidence": [
2026-06-15T13:57:01.5686349Z             {
2026-06-15T13:57:01.5686762Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.5687275Z               "line": 515
2026-06-15T13:57:01.5687656Z             }
2026-06-15T13:57:01.5688000Z           ]
2026-06-15T13:57:01.5688334Z         }
2026-06-15T13:57:01.5688663Z       }
2026-06-15T13:57:01.5689097Z     },
2026-06-15T13:57:01.5689459Z     {
2026-06-15T13:57:01.5689848Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-15T13:57:01.5690464Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-15T13:57:01.5691064Z       "requiredStages": [
2026-06-15T13:57:01.5691460Z         "impl",
2026-06-15T13:57:01.5691826Z         "unit"
2026-06-15T13:57:01.5692182Z       ],
2026-06-15T13:57:01.5692526Z       "stages": {
2026-06-15T13:57:01.5692884Z         "doc": {
2026-06-15T13:57:01.5693260Z           "complete": false,
2026-06-15T13:57:01.5693679Z           "evidence": []
2026-06-15T13:57:01.5694066Z         },
2026-06-15T13:57:01.5694410Z         "impl": {
2026-06-15T13:57:01.5694780Z           "complete": true,
2026-06-15T13:57:01.5695193Z           "evidence": [
2026-06-15T13:57:01.5695569Z             {
2026-06-15T13:57:01.5695979Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.5696508Z               "line": 502
2026-06-15T13:57:01.5696895Z             },
2026-06-15T13:57:01.5697250Z             {
2026-06-15T13:57:01.5697654Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:57:01.5698145Z               "line": 28
2026-06-15T13:57:01.5698531Z             }
2026-06-15T13:57:01.5698879Z           ]
2026-06-15T13:57:01.5699305Z         },
2026-06-15T13:57:01.5699657Z         "int": {
2026-06-15T13:57:01.5700037Z           "complete": false,
2026-06-15T13:57:01.5700442Z           "evidence": []
2026-06-15T13:57:01.5700824Z         },
2026-06-15T13:57:01.5701173Z         "unit": {
2026-06-15T13:57:01.5701549Z           "complete": true,
2026-06-15T13:57:01.5701958Z           "evidence": [
2026-06-15T13:57:01.5702339Z             {
2026-06-15T13:57:01.5702872Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:57:01.5703362Z               "line": 229
2026-06-15T13:57:01.5703744Z             }
2026-06-15T13:57:01.5704097Z           ]
2026-06-15T13:57:01.5704427Z         }
2026-06-15T13:57:01.5704751Z       }
2026-06-15T13:57:01.5705080Z     },
2026-06-15T13:57:01.5705420Z     {
2026-06-15T13:57:01.5705791Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-15T13:57:01.5706344Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-15T13:57:01.5706882Z       "requiredStages": [],
2026-06-15T13:57:01.5707421Z       "stages": {
2026-06-15T13:57:01.5707787Z         "doc": {
2026-06-15T13:57:01.5708151Z           "complete": false,
2026-06-15T13:57:01.5708568Z           "evidence": []
2026-06-15T13:57:01.5709058Z         },
2026-06-15T13:57:01.5709406Z         "impl": {
2026-06-15T13:57:01.5709784Z           "complete": false,
2026-06-15T13:57:01.5710203Z           "evidence": []
2026-06-15T13:57:01.5710583Z         },
2026-06-15T13:57:01.5710931Z         "int": {
2026-06-15T13:57:01.5711298Z           "complete": false,
2026-06-15T13:57:01.5711708Z           "evidence": []
2026-06-15T13:57:01.5712086Z         },
2026-06-15T13:57:01.5712434Z         "unit": {
2026-06-15T13:57:01.5712805Z           "complete": false,
2026-06-15T13:57:01.5713226Z           "evidence": []
2026-06-15T13:57:01.5713612Z         }
2026-06-15T13:57:01.5713946Z       }
2026-06-15T13:57:01.5714304Z     },
2026-06-15T13:57:01.5714633Z     {
2026-06-15T13:57:01.5715019Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-15T13:57:01.5715592Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-15T13:57:01.5716174Z       "requiredStages": [
2026-06-15T13:57:01.5716576Z         "impl",
2026-06-15T13:57:01.5716937Z         "unit"
2026-06-15T13:57:01.5717280Z       ],
2026-06-15T13:57:01.5717623Z       "stages": {
2026-06-15T13:57:01.5717981Z         "doc": {
2026-06-15T13:57:01.5718371Z           "complete": false,
2026-06-15T13:57:01.5718784Z           "evidence": []
2026-06-15T13:57:01.5719289Z         },
2026-06-15T13:57:01.5719642Z         "impl": {
2026-06-15T13:57:01.5720009Z           "complete": true,
2026-06-15T13:57:01.5720416Z           "evidence": [
2026-06-15T13:57:01.5720800Z             {
2026-06-15T13:57:01.5721210Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T13:57:01.5721706Z               "line": 19
2026-06-15T13:57:01.5722093Z             },
2026-06-15T13:57:01.5722440Z             {
2026-06-15T13:57:01.5722859Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:57:01.5723369Z               "line": 347
2026-06-15T13:57:01.5723744Z             },
2026-06-15T13:57:01.5724096Z             {
2026-06-15T13:57:01.5724501Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:57:01.5725007Z               "line": 383
2026-06-15T13:57:01.5725397Z             },
2026-06-15T13:57:01.5725746Z             {
2026-06-15T13:57:01.5726152Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T13:57:01.5726657Z               "line": 15
2026-06-15T13:57:01.5727039Z             },
2026-06-15T13:57:01.5727388Z             {
2026-06-15T13:57:01.5727779Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T13:57:01.5728269Z               "line": 48
2026-06-15T13:57:01.5728652Z             },
2026-06-15T13:57:01.5729093Z             {
2026-06-15T13:57:01.5729506Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T13:57:01.5729993Z               "line": 119
2026-06-15T13:57:01.5730379Z             },
2026-06-15T13:57:01.5730731Z             {
2026-06-15T13:57:01.5731132Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.5735962Z               "line": 3510
2026-06-15T13:57:01.5736454Z             }
2026-06-15T13:57:01.5736816Z           ]
2026-06-15T13:57:01.5737161Z         },
2026-06-15T13:57:01.5737514Z         "int": {
2026-06-15T13:57:01.5737885Z           "complete": false,
2026-06-15T13:57:01.5738315Z           "evidence": []
2026-06-15T13:57:01.5738892Z         },
2026-06-15T13:57:01.5739341Z         "unit": {
2026-06-15T13:57:01.5739714Z           "complete": true,
2026-06-15T13:57:01.5740128Z           "evidence": [
2026-06-15T13:57:01.5740515Z             {
2026-06-15T13:57:01.5740939Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:57:01.5741459Z               "line": 496
2026-06-15T13:57:01.5741841Z             },
2026-06-15T13:57:01.5742194Z             {
2026-06-15T13:57:01.5742593Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T13:57:01.5743084Z               "line": 165
2026-06-15T13:57:01.5743598Z             },
2026-06-15T13:57:01.5743937Z             {
2026-06-15T13:57:01.5744328Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T13:57:01.5744504Z               "line": 175
2026-06-15T13:57:01.5744666Z             }
2026-06-15T13:57:01.5744835Z           ]
2026-06-15T13:57:01.5745002Z         }
2026-06-15T13:57:01.5745159Z       }
2026-06-15T13:57:01.5745326Z     },
2026-06-15T13:57:01.5745498Z     {
2026-06-15T13:57:01.5745703Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-15T13:57:01.5747249Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-15T13:57:01.5747428Z       "requiredStages": [
2026-06-15T13:57:01.5747628Z         "impl",
2026-06-15T13:57:01.5747806Z         "unit"
2026-06-15T13:57:01.5747989Z       ],
2026-06-15T13:57:01.5748179Z       "stages": {
2026-06-15T13:57:01.5748356Z         "doc": {
2026-06-15T13:57:01.5748542Z           "complete": false,
2026-06-15T13:57:01.5748727Z           "evidence": []
2026-06-15T13:57:01.5748890Z         },
2026-06-15T13:57:01.5749147Z         "impl": {
2026-06-15T13:57:01.5749332Z           "complete": true,
2026-06-15T13:57:01.5749534Z           "evidence": [
2026-06-15T13:57:01.5749710Z             {
2026-06-15T13:57:01.5749938Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.5750114Z               "line": 192
2026-06-15T13:57:01.5750283Z             },
2026-06-15T13:57:01.5750441Z             {
2026-06-15T13:57:01.5750650Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.5750823Z               "line": 279
2026-06-15T13:57:01.5750988Z             }
2026-06-15T13:57:01.5751156Z           ]
2026-06-15T13:57:01.5751322Z         },
2026-06-15T13:57:01.5751495Z         "int": {
2026-06-15T13:57:01.5751676Z           "complete": false,
2026-06-15T13:57:01.5751856Z           "evidence": []
2026-06-15T13:57:01.5752024Z         },
2026-06-15T13:57:01.5752185Z         "unit": {
2026-06-15T13:57:01.5752373Z           "complete": true,
2026-06-15T13:57:01.5752538Z           "evidence": [
2026-06-15T13:57:01.5752702Z             {
2026-06-15T13:57:01.5752905Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.5753091Z               "line": 470
2026-06-15T13:57:01.5753252Z             },
2026-06-15T13:57:01.5753415Z             {
2026-06-15T13:57:01.5753625Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.5753792Z               "line": 526
2026-06-15T13:57:01.5753969Z             }
2026-06-15T13:57:01.5754135Z           ]
2026-06-15T13:57:01.5754307Z         }
2026-06-15T13:57:01.5754473Z       }
2026-06-15T13:57:01.5754632Z     },
2026-06-15T13:57:01.5754802Z     {
2026-06-15T13:57:01.5755013Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-15T13:57:01.5755302Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-15T13:57:01.5755495Z       "requiredStages": [
2026-06-15T13:57:01.5755668Z         "impl",
2026-06-15T13:57:01.5755838Z         "unit"
2026-06-15T13:57:01.5755996Z       ],
2026-06-15T13:57:01.5756167Z       "stages": {
2026-06-15T13:57:01.5756335Z         "doc": {
2026-06-15T13:57:01.5756516Z           "complete": false,
2026-06-15T13:57:01.5756687Z           "evidence": []
2026-06-15T13:57:01.5756968Z         },
2026-06-15T13:57:01.5757146Z         "impl": {
2026-06-15T13:57:01.5757331Z           "complete": true,
2026-06-15T13:57:01.5757504Z           "evidence": [
2026-06-15T13:57:01.5757665Z             {
2026-06-15T13:57:01.5757889Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:57:01.5758054Z               "line": 35
2026-06-15T13:57:01.5758220Z             }
2026-06-15T13:57:01.5758385Z           ]
2026-06-15T13:57:01.5758554Z         },
2026-06-15T13:57:01.5758715Z         "int": {
2026-06-15T13:57:01.5759078Z           "complete": false,
2026-06-15T13:57:01.5759259Z           "evidence": []
2026-06-15T13:57:01.5759422Z         },
2026-06-15T13:57:01.5759597Z         "unit": {
2026-06-15T13:57:01.5759774Z           "complete": true,
2026-06-15T13:57:01.5759945Z           "evidence": [
2026-06-15T13:57:01.5760113Z             {
2026-06-15T13:57:01.5760323Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:57:01.5760512Z               "line": 220
2026-06-15T13:57:01.5760674Z             }
2026-06-15T13:57:01.5760829Z           ]
2026-06-15T13:57:01.5761001Z         }
2026-06-15T13:57:01.5761163Z       }
2026-06-15T13:57:01.5761320Z     },
2026-06-15T13:57:01.5761487Z     {
2026-06-15T13:57:01.5761688Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-15T13:57:01.5762159Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-15T13:57:01.5762346Z       "requiredStages": [
2026-06-15T13:57:01.5762516Z         "impl",
2026-06-15T13:57:01.5762684Z         "unit"
2026-06-15T13:57:01.5762846Z       ],
2026-06-15T13:57:01.5763013Z       "stages": {
2026-06-15T13:57:01.5763180Z         "doc": {
2026-06-15T13:57:01.5763366Z           "complete": false,
2026-06-15T13:57:01.5763541Z           "evidence": []
2026-06-15T13:57:01.5763709Z         },
2026-06-15T13:57:01.5763875Z         "impl": {
2026-06-15T13:57:01.5764061Z           "complete": true,
2026-06-15T13:57:01.5764228Z           "evidence": [
2026-06-15T13:57:01.5764399Z             {
2026-06-15T13:57:01.5764633Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.5764809Z               "line": 405
2026-06-15T13:57:01.5764981Z             },
2026-06-15T13:57:01.5765139Z             {
2026-06-15T13:57:01.5765367Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.5765540Z               "line": 409
2026-06-15T13:57:01.5765705Z             },
2026-06-15T13:57:01.5765872Z             {
2026-06-15T13:57:01.5766093Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:57:01.5766270Z               "line": 156
2026-06-15T13:57:01.5766437Z             }
2026-06-15T13:57:01.5766604Z           ]
2026-06-15T13:57:01.5766766Z         },
2026-06-15T13:57:01.5766938Z         "int": {
2026-06-15T13:57:01.5767115Z           "complete": false,
2026-06-15T13:57:01.5767299Z           "evidence": []
2026-06-15T13:57:01.5767468Z         },
2026-06-15T13:57:01.5767633Z         "unit": {
2026-06-15T13:57:01.5767815Z           "complete": true,
2026-06-15T13:57:01.5767982Z           "evidence": [
2026-06-15T13:57:01.5768158Z             {
2026-06-15T13:57:01.5768379Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.5768567Z               "line": 812
2026-06-15T13:57:01.5768739Z             },
2026-06-15T13:57:01.5768903Z             {
2026-06-15T13:57:01.5769213Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.5769390Z               "line": 826
2026-06-15T13:57:01.5769571Z             },
2026-06-15T13:57:01.5769733Z             {
2026-06-15T13:57:01.5769957Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.5770134Z               "line": 845
2026-06-15T13:57:01.5770297Z             },
2026-06-15T13:57:01.5770458Z             {
2026-06-15T13:57:01.5770683Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.5770863Z               "line": 862
2026-06-15T13:57:01.5771134Z             },
2026-06-15T13:57:01.5771301Z             {
2026-06-15T13:57:01.5771546Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T13:57:01.5771714Z               "line": 441
2026-06-15T13:57:01.5771880Z             }
2026-06-15T13:57:01.5772047Z           ]
2026-06-15T13:57:01.5772215Z         }
2026-06-15T13:57:01.5772381Z       }
2026-06-15T13:57:01.5772544Z     },
2026-06-15T13:57:01.5772710Z     {
2026-06-15T13:57:01.5772906Z       "id": "REQ-HAZARD-VIEWER-ISOLATION",
2026-06-15T13:57:01.5776389Z       "title": "A slow / dead / hostile VIEWER must NEVER stall the controller, the PTY child, or the session drain thread. The broker drain fans output to the controller on the authoritative blocking bounded path (advances delivered_through) but to each viewer via a bounded per-viewer channel with a dedicated writer thread; the drain `try_send`s under the log lock and a viewer whose bounded queue OVERFLOWS (can't keep up) is EVICTED (queue dropped, writer thread ends, removed from the viewers map) — the drain thread NEVER touches a viewer socket, so no viewer write can backpressure or block it. A soft viewer cap bounds the thread count. Viewer eviction never perturbs the controller stream, the delivered_through cursor, or the child.",
2026-06-15T13:57:01.5776701Z       "requiredStages": [
2026-06-15T13:57:01.5776877Z         "unit",
2026-06-15T13:57:01.5777050Z         "int"
2026-06-15T13:57:01.5777211Z       ],
2026-06-15T13:57:01.5777394Z       "stages": {
2026-06-15T13:57:01.5777554Z         "doc": {
2026-06-15T13:57:01.5777746Z           "complete": true,
2026-06-15T13:57:01.5777931Z           "evidence": [
2026-06-15T13:57:01.5778093Z             {
2026-06-15T13:57:01.5778290Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:57:01.5778466Z               "line": 374
2026-06-15T13:57:01.5778624Z             }
2026-06-15T13:57:01.5778800Z           ]
2026-06-15T13:57:01.5779052Z         },
2026-06-15T13:57:01.5779228Z         "impl": {
2026-06-15T13:57:01.5779411Z           "complete": true,
2026-06-15T13:57:01.5779592Z           "evidence": [
2026-06-15T13:57:01.5779759Z             {
2026-06-15T13:57:01.5779983Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.5780164Z               "line": 97
2026-06-15T13:57:01.5780322Z             }
2026-06-15T13:57:01.5780494Z           ]
2026-06-15T13:57:01.5780646Z         },
2026-06-15T13:57:01.5780818Z         "int": {
2026-06-15T13:57:01.5780994Z           "complete": true,
2026-06-15T13:57:01.5781157Z           "evidence": [
2026-06-15T13:57:01.5781327Z             {
2026-06-15T13:57:01.5781558Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:57:01.5781741Z               "line": 918
2026-06-15T13:57:01.5781898Z             }
2026-06-15T13:57:01.5782058Z           ]
2026-06-15T13:57:01.5782222Z         },
2026-06-15T13:57:01.5782397Z         "unit": {
2026-06-15T13:57:01.5782574Z           "complete": true,
2026-06-15T13:57:01.5782750Z           "evidence": [
2026-06-15T13:57:01.5782927Z             {
2026-06-15T13:57:01.5783142Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.5783322Z               "line": 1459
2026-06-15T13:57:01.5783485Z             }
2026-06-15T13:57:01.5783642Z           ]
2026-06-15T13:57:01.5783804Z         }
2026-06-15T13:57:01.5783976Z       }
2026-06-15T13:57:01.5784133Z     },
2026-06-15T13:57:01.5784300Z     {
2026-06-15T13:57:01.5784504Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-15T13:57:01.5785816Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-15T13:57:01.5786016Z       "requiredStages": [
2026-06-15T13:57:01.5786187Z         "doc",
2026-06-15T13:57:01.5786350Z         "impl",
2026-06-15T13:57:01.5786525Z         "unit"
2026-06-15T13:57:01.5786688Z       ],
2026-06-15T13:57:01.5786992Z       "stages": {
2026-06-15T13:57:01.5787156Z         "doc": {
2026-06-15T13:57:01.5787338Z           "complete": true,
2026-06-15T13:57:01.5787519Z           "evidence": [
2026-06-15T13:57:01.5787676Z             {
2026-06-15T13:57:01.5787882Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:57:01.5788062Z               "line": 359
2026-06-15T13:57:01.5788230Z             }
2026-06-15T13:57:01.5788387Z           ]
2026-06-15T13:57:01.5788554Z         },
2026-06-15T13:57:01.5788730Z         "impl": {
2026-06-15T13:57:01.5788912Z           "complete": true,
2026-06-15T13:57:01.5789335Z           "evidence": [
2026-06-15T13:57:01.5789508Z             {
2026-06-15T13:57:01.5789749Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T13:57:01.5789929Z               "line": 87
2026-06-15T13:57:01.5790105Z             },
2026-06-15T13:57:01.5790272Z             {
2026-06-15T13:57:01.5790497Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T13:57:01.5790676Z               "line": 105
2026-06-15T13:57:01.5790844Z             },
2026-06-15T13:57:01.5791015Z             {
2026-06-15T13:57:01.5791245Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:57:01.5791417Z               "line": 55
2026-06-15T13:57:01.5791593Z             },
2026-06-15T13:57:01.5791756Z             {
2026-06-15T13:57:01.5791979Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:57:01.5792151Z               "line": 31
2026-06-15T13:57:01.5792325Z             },
2026-06-15T13:57:01.5792491Z             {
2026-06-15T13:57:01.5792724Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:57:01.5792900Z               "line": 292
2026-06-15T13:57:01.5793058Z             },
2026-06-15T13:57:01.5793224Z             {
2026-06-15T13:57:01.5793454Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:57:01.5793621Z               "line": 95
2026-06-15T13:57:01.5793787Z             },
2026-06-15T13:57:01.5793950Z             {
2026-06-15T13:57:01.5794188Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.5794355Z               "line": 29
2026-06-15T13:57:01.5794517Z             },
2026-06-15T13:57:01.5794680Z             {
2026-06-15T13:57:01.5794913Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.5795088Z               "line": 104
2026-06-15T13:57:01.5795255Z             },
2026-06-15T13:57:01.5795417Z             {
2026-06-15T13:57:01.5795656Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.5795841Z               "line": 208
2026-06-15T13:57:01.5796004Z             },
2026-06-15T13:57:01.5796171Z             {
2026-06-15T13:57:01.5796394Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T13:57:01.5796567Z               "line": 28
2026-06-15T13:57:01.5796757Z             },
2026-06-15T13:57:01.5796919Z             {
2026-06-15T13:57:01.5797148Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T13:57:01.5797329Z               "line": 74
2026-06-15T13:57:01.5797500Z             },
2026-06-15T13:57:01.5797665Z             {
2026-06-15T13:57:01.5797899Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T13:57:01.5798074Z               "line": 32
2026-06-15T13:57:01.5798237Z             },
2026-06-15T13:57:01.5798417Z             {
2026-06-15T13:57:01.5798622Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:57:01.5798804Z               "line": 40
2026-06-15T13:57:01.5799057Z             },
2026-06-15T13:57:01.5799219Z             {
2026-06-15T13:57:01.5799444Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:57:01.5799624Z               "line": 184
2026-06-15T13:57:01.5799797Z             },
2026-06-15T13:57:01.5799958Z             {
2026-06-15T13:57:01.5800172Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T13:57:01.5800357Z               "line": 61
2026-06-15T13:57:01.5800517Z             },
2026-06-15T13:57:01.5800799Z             {
2026-06-15T13:57:01.5801009Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T13:57:01.5801180Z               "line": 131
2026-06-15T13:57:01.5801343Z             },
2026-06-15T13:57:01.5801509Z             {
2026-06-15T13:57:01.5801729Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T13:57:01.5801905Z               "line": 223
2026-06-15T13:57:01.5802067Z             },
2026-06-15T13:57:01.5802239Z             {
2026-06-15T13:57:01.5802462Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T13:57:01.5802640Z               "line": 37
2026-06-15T13:57:01.5802915Z             },
2026-06-15T13:57:01.5803084Z             {
2026-06-15T13:57:01.5803309Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T13:57:01.5803494Z               "line": 38
2026-06-15T13:57:01.5803656Z             },
2026-06-15T13:57:01.5803827Z             {
2026-06-15T13:57:01.5804052Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T13:57:01.5804234Z               "line": 36
2026-06-15T13:57:01.5804390Z             },
2026-06-15T13:57:01.5804568Z             {
2026-06-15T13:57:01.5804791Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T13:57:01.5804967Z               "line": 40
2026-06-15T13:57:01.5805168Z             }
2026-06-15T13:57:01.5805363Z           ]
2026-06-15T13:57:01.5805555Z         },
2026-06-15T13:57:01.5805767Z         "int": {
2026-06-15T13:57:01.5805949Z           "complete": false,
2026-06-15T13:57:01.5806139Z           "evidence": []
2026-06-15T13:57:01.5806306Z         },
2026-06-15T13:57:01.5806488Z         "unit": {
2026-06-15T13:57:01.5806678Z           "complete": true,
2026-06-15T13:57:01.5806855Z           "evidence": [
2026-06-15T13:57:01.5807016Z             {
2026-06-15T13:57:01.5807246Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:57:01.5807433Z               "line": 212
2026-06-15T13:57:01.5807603Z             },
2026-06-15T13:57:01.5807767Z             {
2026-06-15T13:57:01.5808017Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-15T13:57:01.5808196Z               "line": 136
2026-06-15T13:57:01.5808358Z             },
2026-06-15T13:57:01.5808525Z             {
2026-06-15T13:57:01.5808769Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T13:57:01.5809027Z               "line": 685
2026-06-15T13:57:01.5809206Z             },
2026-06-15T13:57:01.5809384Z             {
2026-06-15T13:57:01.5809607Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T13:57:01.5809788Z               "line": 224
2026-06-15T13:57:01.5809966Z             },
2026-06-15T13:57:01.5810146Z             {
2026-06-15T13:57:01.5810366Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T13:57:01.5810542Z               "line": 206
2026-06-15T13:57:01.5810704Z             },
2026-06-15T13:57:01.5810869Z             {
2026-06-15T13:57:01.5811092Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T13:57:01.5811278Z               "line": 112
2026-06-15T13:57:01.5811449Z             },
2026-06-15T13:57:01.5811612Z             {
2026-06-15T13:57:01.5811840Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T13:57:01.5812017Z               "line": 157
2026-06-15T13:57:01.5812188Z             },
2026-06-15T13:57:01.5812355Z             {
2026-06-15T13:57:01.5812566Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T13:57:01.5812751Z               "line": 215
2026-06-15T13:57:01.5812914Z             },
2026-06-15T13:57:01.5813089Z             {
2026-06-15T13:57:01.5813327Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T13:57:01.5813499Z               "line": 141
2026-06-15T13:57:01.5813672Z             },
2026-06-15T13:57:01.5813849Z             {
2026-06-15T13:57:01.5814078Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T13:57:01.5814260Z               "line": 162
2026-06-15T13:57:01.5814426Z             }
2026-06-15T13:57:01.5814731Z           ]
2026-06-15T13:57:01.5814898Z         }
2026-06-15T13:57:01.5815075Z       }
2026-06-15T13:57:01.5815251Z     },
2026-06-15T13:57:01.5815419Z     {
2026-06-15T13:57:01.5815632Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-15T13:57:01.5815937Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-15T13:57:01.5816134Z       "requiredStages": [
2026-06-15T13:57:01.5816308Z         "impl",
2026-06-15T13:57:01.5816481Z         "unit"
2026-06-15T13:57:01.5816651Z       ],
2026-06-15T13:57:01.5816833Z       "stages": {
2026-06-15T13:57:01.5817000Z         "doc": {
2026-06-15T13:57:01.5817296Z           "complete": false,
2026-06-15T13:57:01.5817472Z           "evidence": []
2026-06-15T13:57:01.5817635Z         },
2026-06-15T13:57:01.5817815Z         "impl": {
2026-06-15T13:57:01.5817998Z           "complete": true,
2026-06-15T13:57:01.5818182Z           "evidence": [
2026-06-15T13:57:01.5818346Z             {
2026-06-15T13:57:01.5818577Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:57:01.5818756Z               "line": 95
2026-06-15T13:57:01.5818923Z             },
2026-06-15T13:57:01.5819175Z             {
2026-06-15T13:57:01.5819395Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.5819577Z               "line": 102
2026-06-15T13:57:01.5819757Z             }
2026-06-15T13:57:01.5819925Z           ]
2026-06-15T13:57:01.5820100Z         },
2026-06-15T13:57:01.5820277Z         "int": {
2026-06-15T13:57:01.5820472Z           "complete": false,
2026-06-15T13:57:01.5820672Z           "evidence": []
2026-06-15T13:57:01.5820865Z         },
2026-06-15T13:57:01.5821050Z         "unit": {
2026-06-15T13:57:01.5821236Z           "complete": true,
2026-06-15T13:57:01.5821415Z           "evidence": [
2026-06-15T13:57:01.5821586Z             {
2026-06-15T13:57:01.5821809Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:57:01.5821990Z               "line": 250
2026-06-15T13:57:01.5822167Z             },
2026-06-15T13:57:01.5822333Z             {
2026-06-15T13:57:01.5822558Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T13:57:01.5822734Z               "line": 198
2026-06-15T13:57:01.5822901Z             },
2026-06-15T13:57:01.5823078Z             {
2026-06-15T13:57:01.5823306Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.5823493Z               "line": 489
2026-06-15T13:57:01.5823669Z             },
2026-06-15T13:57:01.5823831Z             {
2026-06-15T13:57:01.5824054Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.5824233Z               "line": 522
2026-06-15T13:57:01.5824414Z             }
2026-06-15T13:57:01.5824585Z           ]
2026-06-15T13:57:01.5824763Z         }
2026-06-15T13:57:01.5824938Z       }
2026-06-15T13:57:01.5825096Z     },
2026-06-15T13:57:01.5825257Z     {
2026-06-15T13:57:01.5825453Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-15T13:57:01.5825787Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-15T13:57:01.5825965Z       "requiredStages": [
2026-06-15T13:57:01.5826145Z         "impl",
2026-06-15T13:57:01.5826322Z         "unit"
2026-06-15T13:57:01.5826488Z       ],
2026-06-15T13:57:01.5826671Z       "stages": {
2026-06-15T13:57:01.5826844Z         "doc": {
2026-06-15T13:57:01.5827022Z           "complete": false,
2026-06-15T13:57:01.5827197Z           "evidence": []
2026-06-15T13:57:01.5827375Z         },
2026-06-15T13:57:01.5827561Z         "impl": {
2026-06-15T13:57:01.5827741Z           "complete": true,
2026-06-15T13:57:01.5827928Z           "evidence": [
2026-06-15T13:57:01.5828098Z             {
2026-06-15T13:57:01.5828318Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5828495Z               "line": 262
2026-06-15T13:57:01.5828675Z             },
2026-06-15T13:57:01.5828839Z             {
2026-06-15T13:57:01.5829147Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5829335Z               "line": 307
2026-06-15T13:57:01.5829507Z             },
2026-06-15T13:57:01.5829788Z             {
2026-06-15T13:57:01.5830021Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5830199Z               "line": 319
2026-06-15T13:57:01.5830379Z             }
2026-06-15T13:57:01.5830537Z           ]
2026-06-15T13:57:01.5830713Z         },
2026-06-15T13:57:01.5830889Z         "int": {
2026-06-15T13:57:01.5831067Z           "complete": false,
2026-06-15T13:57:01.5831247Z           "evidence": []
2026-06-15T13:57:01.5831415Z         },
2026-06-15T13:57:01.5831590Z         "unit": {
2026-06-15T13:57:01.5831773Z           "complete": true,
2026-06-15T13:57:01.5832057Z           "evidence": [
2026-06-15T13:57:01.5832226Z             {
2026-06-15T13:57:01.5832446Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5832626Z               "line": 455
2026-06-15T13:57:01.5832804Z             },
2026-06-15T13:57:01.5832980Z             {
2026-06-15T13:57:01.5833189Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.5833376Z               "line": 499
2026-06-15T13:57:01.5833547Z             }
2026-06-15T13:57:01.5833733Z           ]
2026-06-15T13:57:01.5833895Z         }
2026-06-15T13:57:01.5834072Z       }
2026-06-15T13:57:01.5834239Z     },
2026-06-15T13:57:01.5834405Z     {
2026-06-15T13:57:01.5834604Z       "id": "REQ-HOST-RUN-1",
2026-06-15T13:57:01.5838488Z       "title": "spt-hosted harness bringup: `spt endpoint run` spawns an adapter's `[session.self]` command template into a broker-held PTY (the spawn-session seam, brain.rs spawn_session_pid — same broker path shellhost.rs launch_shell_brokered_in uses for shells, now for kind=\"harness\" self-role), registers the perch under the given endpoint id, returns the id. Reverses today's harness-hosted-only launch (external launcher → `api bind`). Non-interactive flag set (--adapter <a[:profile]> --id <id> --create --resume <session> --attach|--start|--view) covers every terminal action of the W2 interactive picker so shortcuts (cc-<id>) bake fully non-interactive launches; composite adapter:profile resolves via registry::resolve_option leaf-replace overlay.",
2026-06-15T13:57:01.5838711Z       "requiredStages": [
2026-06-15T13:57:01.5838883Z         "impl",
2026-06-15T13:57:01.5839137Z         "unit",
2026-06-15T13:57:01.5839321Z         "int"
2026-06-15T13:57:01.5839499Z       ],
2026-06-15T13:57:01.5839677Z       "stages": {
2026-06-15T13:57:01.5839853Z         "doc": {
2026-06-15T13:57:01.5840034Z           "complete": false,
2026-06-15T13:57:01.5840224Z           "evidence": []
2026-06-15T13:57:01.5840401Z         },
2026-06-15T13:57:01.5840591Z         "impl": {
2026-06-15T13:57:01.5840773Z           "complete": true,
2026-06-15T13:57:01.5840953Z           "evidence": [
2026-06-15T13:57:01.5841130Z             {
2026-06-15T13:57:01.5841370Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T13:57:01.5841550Z               "line": 24
2026-06-15T13:57:01.5841718Z             },
2026-06-15T13:57:01.5841893Z             {
2026-06-15T13:57:01.5842141Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T13:57:01.5842324Z               "line": 63
2026-06-15T13:57:01.5842498Z             },
2026-06-15T13:57:01.5842670Z             {
2026-06-15T13:57:01.5842910Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T13:57:01.5843096Z               "line": 109
2026-06-15T13:57:01.5843259Z             },
2026-06-15T13:57:01.5843420Z             {
2026-06-15T13:57:01.5843626Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.5843816Z               "line": 1165
2026-06-15T13:57:01.5843983Z             }
2026-06-15T13:57:01.5844159Z           ]
2026-06-15T13:57:01.5844326Z         },
2026-06-15T13:57:01.5844499Z         "int": {
2026-06-15T13:57:01.5844684Z           "complete": true,
2026-06-15T13:57:01.5844857Z           "evidence": [
2026-06-15T13:57:01.5845031Z             {
2026-06-15T13:57:01.5845250Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:57:01.5845568Z               "line": 279
2026-06-15T13:57:01.5845738Z             }
2026-06-15T13:57:01.5845911Z           ]
2026-06-15T13:57:01.5846077Z         },
2026-06-15T13:57:01.5846245Z         "unit": {
2026-06-15T13:57:01.5846426Z           "complete": true,
2026-06-15T13:57:01.5846612Z           "evidence": [
2026-06-15T13:57:01.5846785Z             {
2026-06-15T13:57:01.5847026Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T13:57:01.5847208Z               "line": 149
2026-06-15T13:57:01.5847385Z             },
2026-06-15T13:57:01.5847546Z             {
2026-06-15T13:57:01.5847899Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T13:57:01.5848079Z               "line": 169
2026-06-15T13:57:01.5848255Z             },
2026-06-15T13:57:01.5848433Z             {
2026-06-15T13:57:01.5848666Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T13:57:01.5848848Z               "line": 202
2026-06-15T13:57:01.5849100Z             }
2026-06-15T13:57:01.5849291Z           ]
2026-06-15T13:57:01.5849457Z         }
2026-06-15T13:57:01.5849630Z       }
2026-06-15T13:57:01.5849809Z     },
2026-06-15T13:57:01.5849969Z     {
2026-06-15T13:57:01.5850167Z       "id": "REQ-HOST-RUN-2",
2026-06-15T13:57:01.5853063Z       "title": "Project-scoped working directory for spt-hosted bringup: `spt endpoint run` lands the broker-spawned harness PTY in the user's PROJECT cwd, not the daemon's, via an additive `SpawnReq.cwd` field carried through the broker PTY spawn (portable-pty CommandBuilder cwd). N-1-safe wire change (additive, defaulted). Required because the consumer (Claude Code) is project-scoped: broker-inherited cwd = the daemon's cwd = the wrong `.claude`, wrong session history, wrong digest source; `cc <id>` at a project root MUST land the harness in that project. W1 ships broker-inherited cwd as a bringup-proof shortcut only; this REQ must land before the M12 gate (doyle, 2026-06-14).",
2026-06-15T13:57:01.5853267Z       "requiredStages": [
2026-06-15T13:57:01.5853451Z         "impl",
2026-06-15T13:57:01.5853619Z         "unit",
2026-06-15T13:57:01.5853795Z         "int"
2026-06-15T13:57:01.5853962Z       ],
2026-06-15T13:57:01.5854148Z       "stages": {
2026-06-15T13:57:01.5854328Z         "doc": {
2026-06-15T13:57:01.5854515Z           "complete": false,
2026-06-15T13:57:01.5854691Z           "evidence": []
2026-06-15T13:57:01.5854853Z         },
2026-06-15T13:57:01.5855029Z         "impl": {
2026-06-15T13:57:01.5855210Z           "complete": true,
2026-06-15T13:57:01.5855393Z           "evidence": [
2026-06-15T13:57:01.5855573Z             {
2026-06-15T13:57:01.5855810Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T13:57:01.5855993Z               "line": 110
2026-06-15T13:57:01.5856157Z             },
2026-06-15T13:57:01.5856338Z             {
2026-06-15T13:57:01.5856547Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T13:57:01.5856729Z               "line": 113
2026-06-15T13:57:01.5856900Z             }
2026-06-15T13:57:01.5857067Z           ]
2026-06-15T13:57:01.5857248Z         },
2026-06-15T13:57:01.5857425Z         "int": {
2026-06-15T13:57:01.5857611Z           "complete": true,
2026-06-15T13:57:01.5857787Z           "evidence": [
2026-06-15T13:57:01.5857960Z             {
2026-06-15T13:57:01.5858197Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:57:01.5858374Z               "line": 454
2026-06-15T13:57:01.5858553Z             }
2026-06-15T13:57:01.5858722Z           ]
2026-06-15T13:57:01.5858897Z         },
2026-06-15T13:57:01.5859145Z         "unit": {
2026-06-15T13:57:01.5859331Z           "complete": true,
2026-06-15T13:57:01.5859517Z           "evidence": [
2026-06-15T13:57:01.5859680Z             {
2026-06-15T13:57:01.5859909Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T13:57:01.5860080Z               "line": 86
2026-06-15T13:57:01.5860257Z             }
2026-06-15T13:57:01.5860437Z           ]
2026-06-15T13:57:01.5860600Z         }
2026-06-15T13:57:01.5860879Z       }
2026-06-15T13:57:01.5861044Z     },
2026-06-15T13:57:01.5861211Z     {
2026-06-15T13:57:01.5861392Z       "id": "REQ-INFRA-1",
2026-06-15T13:57:01.5861721Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-15T13:57:01.5861908Z       "requiredStages": [],
2026-06-15T13:57:01.5862084Z       "stages": {
2026-06-15T13:57:01.5862255Z         "doc": {
2026-06-15T13:57:01.5862437Z           "complete": false,
2026-06-15T13:57:01.5862618Z           "evidence": []
2026-06-15T13:57:01.5862785Z         },
2026-06-15T13:57:01.5862966Z         "impl": {
2026-06-15T13:57:01.5863256Z           "complete": false,
2026-06-15T13:57:01.5863429Z           "evidence": []
2026-06-15T13:57:01.5863604Z         },
2026-06-15T13:57:01.5863770Z         "int": {
2026-06-15T13:57:01.5863949Z           "complete": false,
2026-06-15T13:57:01.5864126Z           "evidence": []
2026-06-15T13:57:01.5864292Z         },
2026-06-15T13:57:01.5864464Z         "unit": {
2026-06-15T13:57:01.5864660Z           "complete": false,
2026-06-15T13:57:01.5864842Z           "evidence": []
2026-06-15T13:57:01.5865013Z         }
2026-06-15T13:57:01.5865180Z       }
2026-06-15T13:57:01.5865338Z     },
2026-06-15T13:57:01.5865518Z     {
2026-06-15T13:57:01.5865696Z       "id": "REQ-INST-1",
2026-06-15T13:57:01.5865987Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-15T13:57:01.5866185Z       "requiredStages": [],
2026-06-15T13:57:01.5866356Z       "stages": {
2026-06-15T13:57:01.5866526Z         "doc": {
2026-06-15T13:57:01.5866708Z           "complete": false,
2026-06-15T13:57:01.5866893Z           "evidence": []
2026-06-15T13:57:01.5867061Z         },
2026-06-15T13:57:01.5867227Z         "impl": {
2026-06-15T13:57:01.5867417Z           "complete": false,
2026-06-15T13:57:01.5867595Z           "evidence": []
2026-06-15T13:57:01.5867822Z         },
2026-06-15T13:57:01.5867999Z         "int": {
2026-06-15T13:57:01.5868215Z           "complete": false,
2026-06-15T13:57:01.5868414Z           "evidence": []
2026-06-15T13:57:01.5868619Z         },
2026-06-15T13:57:01.5868801Z         "unit": {
2026-06-15T13:57:01.5869066Z           "complete": false,
2026-06-15T13:57:01.5869253Z           "evidence": []
2026-06-15T13:57:01.5869443Z         }
2026-06-15T13:57:01.5869620Z       }
2026-06-15T13:57:01.5869811Z     },
2026-06-15T13:57:01.5869982Z     {
2026-06-15T13:57:01.5870164Z       "id": "REQ-INST-10",
2026-06-15T13:57:01.5870549Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-15T13:57:01.5874117Z       "requiredStages": [
2026-06-15T13:57:01.5874368Z         "impl",
2026-06-15T13:57:01.5874543Z         "unit"
2026-06-15T13:57:01.5874701Z       ],
2026-06-15T13:57:01.5874881Z       "stages": {
2026-06-15T13:57:01.5875049Z         "doc": {
2026-06-15T13:57:01.5875240Z           "complete": false,
2026-06-15T13:57:01.5875421Z           "evidence": []
2026-06-15T13:57:01.5875588Z         },
2026-06-15T13:57:01.5875764Z         "impl": {
2026-06-15T13:57:01.5875950Z           "complete": true,
2026-06-15T13:57:01.5876131Z           "evidence": [
2026-06-15T13:57:01.5876299Z             {
2026-06-15T13:57:01.5876537Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5876726Z               "line": 616
2026-06-15T13:57:01.5876902Z             },
2026-06-15T13:57:01.5877071Z             {
2026-06-15T13:57:01.5877320Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5877501Z               "line": 693
2026-06-15T13:57:01.5877667Z             },
2026-06-15T13:57:01.5877840Z             {
2026-06-15T13:57:01.5878077Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T13:57:01.5878254Z               "line": 13
2026-06-15T13:57:01.5878431Z             },
2026-06-15T13:57:01.5878603Z             {
2026-06-15T13:57:01.5878828Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T13:57:01.5879089Z               "line": 67
2026-06-15T13:57:01.5879260Z             },
2026-06-15T13:57:01.5879583Z             {
2026-06-15T13:57:01.5879799Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:57:01.5879969Z               "line": 18
2026-06-15T13:57:01.5880137Z             },
2026-06-15T13:57:01.5880307Z             {
2026-06-15T13:57:01.5880523Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:57:01.5880690Z               "line": 444
2026-06-15T13:57:01.5880847Z             }
2026-06-15T13:57:01.5881015Z           ]
2026-06-15T13:57:01.5881181Z         },
2026-06-15T13:57:01.5881344Z         "int": {
2026-06-15T13:57:01.5881533Z           "complete": false,
2026-06-15T13:57:01.5881824Z           "evidence": []
2026-06-15T13:57:01.5881991Z         },
2026-06-15T13:57:01.5882174Z         "unit": {
2026-06-15T13:57:01.5882356Z           "complete": true,
2026-06-15T13:57:01.5882526Z           "evidence": [
2026-06-15T13:57:01.5882699Z             {
2026-06-15T13:57:01.5882928Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5883108Z               "line": 900
2026-06-15T13:57:01.5883272Z             },
2026-06-15T13:57:01.5883442Z             {
2026-06-15T13:57:01.5883666Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5883848Z               "line": 1233
2026-06-15T13:57:01.5884019Z             },
2026-06-15T13:57:01.5884182Z             {
2026-06-15T13:57:01.5884411Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5884583Z               "line": 1244
2026-06-15T13:57:01.5884757Z             },
2026-06-15T13:57:01.5884924Z             {
2026-06-15T13:57:01.5885160Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5885342Z               "line": 1260
2026-06-15T13:57:01.5885514Z             },
2026-06-15T13:57:01.5885685Z             {
2026-06-15T13:57:01.5885910Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5886086Z               "line": 1276
2026-06-15T13:57:01.5886248Z             },
2026-06-15T13:57:01.5886429Z             {
2026-06-15T13:57:01.5886662Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5886835Z               "line": 1298
2026-06-15T13:57:01.5887010Z             },
2026-06-15T13:57:01.5887174Z             {
2026-06-15T13:57:01.5887405Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5887579Z               "line": 1603
2026-06-15T13:57:01.5887751Z             },
2026-06-15T13:57:01.5887904Z             {
2026-06-15T13:57:01.5888110Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T13:57:01.5888294Z               "line": 130
2026-06-15T13:57:01.5888457Z             },
2026-06-15T13:57:01.5888628Z             {
2026-06-15T13:57:01.5888838Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T13:57:01.5889096Z               "line": 167
2026-06-15T13:57:01.5889267Z             },
2026-06-15T13:57:01.5889430Z             {
2026-06-15T13:57:01.5889645Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T13:57:01.5889830Z               "line": 175
2026-06-15T13:57:01.5890008Z             },
2026-06-15T13:57:01.5890167Z             {
2026-06-15T13:57:01.5890378Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T13:57:01.5890553Z               "line": 183
2026-06-15T13:57:01.5890721Z             },
2026-06-15T13:57:01.5890892Z             {
2026-06-15T13:57:01.5891088Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:57:01.5891270Z               "line": 896
2026-06-15T13:57:01.5891431Z             }
2026-06-15T13:57:01.5891594Z           ]
2026-06-15T13:57:01.5891764Z         }
2026-06-15T13:57:01.5891928Z       }
2026-06-15T13:57:01.5892098Z     },
2026-06-15T13:57:01.5892262Z     {
2026-06-15T13:57:01.5892445Z       "id": "REQ-INST-11",
2026-06-15T13:57:01.5892834Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-15T13:57:01.5893020Z       "requiredStages": [
2026-06-15T13:57:01.5893197Z         "impl",
2026-06-15T13:57:01.5893469Z         "unit"
2026-06-15T13:57:01.5893645Z       ],
2026-06-15T13:57:01.5893803Z       "stages": {
2026-06-15T13:57:01.5893978Z         "doc": {
2026-06-15T13:57:01.5894151Z           "complete": false,
2026-06-15T13:57:01.5894331Z           "evidence": []
2026-06-15T13:57:01.5894513Z         },
2026-06-15T13:57:01.5894675Z         "impl": {
2026-06-15T13:57:01.5894861Z           "complete": true,
2026-06-15T13:57:01.5895038Z           "evidence": [
2026-06-15T13:57:01.5895209Z             {
2026-06-15T13:57:01.5895427Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5895711Z               "line": 482
2026-06-15T13:57:01.5895887Z             },
2026-06-15T13:57:01.5896045Z             {
2026-06-15T13:57:01.5896287Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.5896465Z               "line": 297
2026-06-15T13:57:01.5896626Z             },
2026-06-15T13:57:01.5896798Z             {
2026-06-15T13:57:01.5897028Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T13:57:01.5897203Z               "line": 59
2026-06-15T13:57:01.5897376Z             },
2026-06-15T13:57:01.5897542Z             {
2026-06-15T13:57:01.5897743Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.5897927Z               "line": 4738
2026-06-15T13:57:01.5898088Z             },
2026-06-15T13:57:01.5898258Z             {
2026-06-15T13:57:01.5898459Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.5898641Z               "line": 6155
2026-06-15T13:57:01.5898811Z             }
2026-06-15T13:57:01.5899094Z           ]
2026-06-15T13:57:01.5899270Z         },
2026-06-15T13:57:01.5899446Z         "int": {
2026-06-15T13:57:01.5899623Z           "complete": false,
2026-06-15T13:57:01.5899808Z           "evidence": []
2026-06-15T13:57:01.5899966Z         },
2026-06-15T13:57:01.5900142Z         "unit": {
2026-06-15T13:57:01.5900323Z           "complete": true,
2026-06-15T13:57:01.5900506Z           "evidence": [
2026-06-15T13:57:01.5900676Z             {
2026-06-15T13:57:01.5900905Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5901070Z               "line": 1403
2026-06-15T13:57:01.5901234Z             },
2026-06-15T13:57:01.5901399Z             {
2026-06-15T13:57:01.5901620Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5901801Z               "line": 1436
2026-06-15T13:57:01.5901963Z             },
2026-06-15T13:57:01.5902121Z             {
2026-06-15T13:57:01.5902358Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.5902545Z               "line": 527
2026-06-15T13:57:01.5902721Z             },
2026-06-15T13:57:01.5902892Z             {
2026-06-15T13:57:01.5903111Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T13:57:01.5903285Z               "line": 160
2026-06-15T13:57:01.5903462Z             },
2026-06-15T13:57:01.5903623Z             {
2026-06-15T13:57:01.5903838Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T13:57:01.5904024Z               "line": 190
2026-06-15T13:57:01.5904191Z             },
2026-06-15T13:57:01.5904363Z             {
2026-06-15T13:57:01.5904581Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T13:57:01.5904759Z               "line": 225
2026-06-15T13:57:01.5904930Z             },
2026-06-15T13:57:01.5905101Z             {
2026-06-15T13:57:01.5905312Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.5905492Z               "line": 6544
2026-06-15T13:57:01.5905651Z             }
2026-06-15T13:57:01.5905821Z           ]
2026-06-15T13:57:01.5905992Z         }
2026-06-15T13:57:01.5906171Z       }
2026-06-15T13:57:01.5906333Z     },
2026-06-15T13:57:01.5906500Z     {
2026-06-15T13:57:01.5906682Z       "id": "REQ-INST-12",
2026-06-15T13:57:01.5907216Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-15T13:57:01.5907396Z       "requiredStages": [
2026-06-15T13:57:01.5907706Z         "impl",
2026-06-15T13:57:01.5907884Z         "unit"
2026-06-15T13:57:01.5908040Z       ],
2026-06-15T13:57:01.5908218Z       "stages": {
2026-06-15T13:57:01.5908378Z         "doc": {
2026-06-15T13:57:01.5908568Z           "complete": false,
2026-06-15T13:57:01.5908747Z           "evidence": []
2026-06-15T13:57:01.5908915Z         },
2026-06-15T13:57:01.5909172Z         "impl": {
2026-06-15T13:57:01.5909357Z           "complete": true,
2026-06-15T13:57:01.5909558Z           "evidence": [
2026-06-15T13:57:01.5909724Z             {
2026-06-15T13:57:01.5909958Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5910249Z               "line": 534
2026-06-15T13:57:01.5910421Z             },
2026-06-15T13:57:01.5910597Z             {
2026-06-15T13:57:01.5910818Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5910998Z               "line": 627
2026-06-15T13:57:01.5911161Z             },
2026-06-15T13:57:01.5911335Z             {
2026-06-15T13:57:01.5911579Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5911755Z               "line": 707
2026-06-15T13:57:01.5911931Z             },
2026-06-15T13:57:01.5912094Z             {
2026-06-15T13:57:01.5912318Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.5912494Z               "line": 96
2026-06-15T13:57:01.5912681Z             },
2026-06-15T13:57:01.5912857Z             {
2026-06-15T13:57:01.5913072Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.5913247Z               "line": 269
2026-06-15T13:57:01.5913420Z             },
2026-06-15T13:57:01.5913594Z             {
2026-06-15T13:57:01.5913816Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T13:57:01.5913993Z               "line": 135
2026-06-15T13:57:01.5914169Z             }
2026-06-15T13:57:01.5914337Z           ]
2026-06-15T13:57:01.5914507Z         },
2026-06-15T13:57:01.5914666Z         "int": {
2026-06-15T13:57:01.5914860Z           "complete": false,
2026-06-15T13:57:01.5915047Z           "evidence": []
2026-06-15T13:57:01.5915218Z         },
2026-06-15T13:57:01.5915395Z         "unit": {
2026-06-15T13:57:01.5915572Z           "complete": true,
2026-06-15T13:57:01.5915757Z           "evidence": [
2026-06-15T13:57:01.5915925Z             {
2026-06-15T13:57:01.5916163Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5916637Z               "line": 1478
2026-06-15T13:57:01.5916817Z             },
2026-06-15T13:57:01.5916993Z             {
2026-06-15T13:57:01.5917227Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5917417Z               "line": 1501
2026-06-15T13:57:01.5917580Z             },
2026-06-15T13:57:01.5917746Z             {
2026-06-15T13:57:01.5917976Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5918158Z               "line": 1538
2026-06-15T13:57:01.5918328Z             },
2026-06-15T13:57:01.5918492Z             {
2026-06-15T13:57:01.5918710Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.5918872Z               "line": 457
2026-06-15T13:57:01.5919129Z             },
2026-06-15T13:57:01.5919298Z             {
2026-06-15T13:57:01.5919528Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T13:57:01.5919708Z               "line": 172
2026-06-15T13:57:01.5919880Z             },
2026-06-15T13:57:01.5920042Z             {
2026-06-15T13:57:01.5920266Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T13:57:01.5920452Z               "line": 193
2026-06-15T13:57:01.5920633Z             },
2026-06-15T13:57:01.5920800Z             {
2026-06-15T13:57:01.5921030Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T13:57:01.5921196Z               "line": 219
2026-06-15T13:57:01.5921368Z             }
2026-06-15T13:57:01.5921534Z           ]
2026-06-15T13:57:01.5921692Z         }
2026-06-15T13:57:01.5921867Z       }
2026-06-15T13:57:01.5922040Z     },
2026-06-15T13:57:01.5922345Z     {
2026-06-15T13:57:01.5922524Z       "id": "REQ-INST-13",
2026-06-15T13:57:01.5922868Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-15T13:57:01.5923045Z       "requiredStages": [
2026-06-15T13:57:01.5923221Z         "impl",
2026-06-15T13:57:01.5923392Z         "unit"
2026-06-15T13:57:01.5923551Z       ],
2026-06-15T13:57:01.5923730Z       "stages": {
2026-06-15T13:57:01.5923895Z         "doc": {
2026-06-15T13:57:01.5924078Z           "complete": false,
2026-06-15T13:57:01.5924259Z           "evidence": []
2026-06-15T13:57:01.5924539Z         },
2026-06-15T13:57:01.5924701Z         "impl": {
2026-06-15T13:57:01.5924892Z           "complete": true,
2026-06-15T13:57:01.5925072Z           "evidence": [
2026-06-15T13:57:01.5925231Z             {
2026-06-15T13:57:01.5925449Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:57:01.5925631Z               "line": 100
2026-06-15T13:57:01.5925812Z             },
2026-06-15T13:57:01.5926002Z             {
2026-06-15T13:57:01.5926236Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T13:57:01.5926413Z               "line": 158
2026-06-15T13:57:01.5926588Z             }
2026-06-15T13:57:01.5926752Z           ]
2026-06-15T13:57:01.5926917Z         },
2026-06-15T13:57:01.5927084Z         "int": {
2026-06-15T13:57:01.5927267Z           "complete": false,
2026-06-15T13:57:01.5927449Z           "evidence": []
2026-06-15T13:57:01.5928065Z         },
2026-06-15T13:57:01.5928268Z         "unit": {
2026-06-15T13:57:01.5928464Z           "complete": true,
2026-06-15T13:57:01.5928645Z           "evidence": [
2026-06-15T13:57:01.5928817Z             {
2026-06-15T13:57:01.5929136Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T13:57:01.5929314Z               "line": 248
2026-06-15T13:57:01.5929484Z             },
2026-06-15T13:57:01.5929655Z             {
2026-06-15T13:57:01.5929895Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T13:57:01.5930083Z               "line": 266
2026-06-15T13:57:01.5930259Z             }
2026-06-15T13:57:01.5930416Z           ]
2026-06-15T13:57:01.5930592Z         }
2026-06-15T13:57:01.5930759Z       }
2026-06-15T13:57:01.5930922Z     },
2026-06-15T13:57:01.5931103Z     {
2026-06-15T13:57:01.5931285Z       "id": "REQ-INST-14",
2026-06-15T13:57:01.5931966Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-15T13:57:01.5932157Z       "requiredStages": [
2026-06-15T13:57:01.5932318Z         "doc",
2026-06-15T13:57:01.5932498Z         "impl",
2026-06-15T13:57:01.5932675Z         "unit"
2026-06-15T13:57:01.5932847Z       ],
2026-06-15T13:57:01.5933004Z       "stages": {
2026-06-15T13:57:01.5933177Z         "doc": {
2026-06-15T13:57:01.5933361Z           "complete": true,
2026-06-15T13:57:01.5933543Z           "evidence": [
2026-06-15T13:57:01.5933714Z             {
2026-06-15T13:57:01.5933896Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.5934082Z               "line": 532
2026-06-15T13:57:01.5934249Z             },
2026-06-15T13:57:01.5934425Z             {
2026-06-15T13:57:01.5934606Z               "path": "docs/STORAGE.md",
2026-06-15T13:57:01.5934777Z               "line": 49
2026-06-15T13:57:01.5934956Z             }
2026-06-15T13:57:01.5935122Z           ]
2026-06-15T13:57:01.5935298Z         },
2026-06-15T13:57:01.5935462Z         "impl": {
2026-06-15T13:57:01.5935651Z           "complete": true,
2026-06-15T13:57:01.5935824Z           "evidence": [
2026-06-15T13:57:01.5935995Z             {
2026-06-15T13:57:01.5936257Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.5936439Z               "line": 404
2026-06-15T13:57:01.5936605Z             },
2026-06-15T13:57:01.5936773Z             {
2026-06-15T13:57:01.5937012Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5937197Z               "line": 346
2026-06-15T13:57:01.5937355Z             },
2026-06-15T13:57:01.5937687Z             {
2026-06-15T13:57:01.5937908Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.5938091Z               "line": 221
2026-06-15T13:57:01.5938261Z             },
2026-06-15T13:57:01.5938439Z             {
2026-06-15T13:57:01.5938639Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.5938819Z               "line": 1378
2026-06-15T13:57:01.5939087Z             }
2026-06-15T13:57:01.5939259Z           ]
2026-06-15T13:57:01.5939434Z         },
2026-06-15T13:57:01.5939598Z         "int": {
2026-06-15T13:57:01.5939898Z           "complete": false,
2026-06-15T13:57:01.5940082Z           "evidence": []
2026-06-15T13:57:01.5940254Z         },
2026-06-15T13:57:01.5940432Z         "unit": {
2026-06-15T13:57:01.5940609Z           "complete": true,
2026-06-15T13:57:01.5940789Z           "evidence": [
2026-06-15T13:57:01.5940952Z             {
2026-06-15T13:57:01.5941211Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.5941405Z               "line": 1111
2026-06-15T13:57:01.5941567Z             },
2026-06-15T13:57:01.5941748Z             {
2026-06-15T13:57:01.5941973Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5942155Z               "line": 912
2026-06-15T13:57:01.5942325Z             },
2026-06-15T13:57:01.5942494Z             {
2026-06-15T13:57:01.5942722Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5942897Z               "line": 1173
2026-06-15T13:57:01.5943073Z             },
2026-06-15T13:57:01.5943245Z             {
2026-06-15T13:57:01.5943469Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.5943654Z               "line": 490
2026-06-15T13:57:01.5943832Z             },
2026-06-15T13:57:01.5943993Z             {
2026-06-15T13:57:01.5944194Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.5944376Z               "line": 6620
2026-06-15T13:57:01.5944537Z             }
2026-06-15T13:57:01.5944719Z           ]
2026-06-15T13:57:01.5944885Z         }
2026-06-15T13:57:01.5945062Z       }
2026-06-15T13:57:01.5945227Z     },
2026-06-15T13:57:01.5945389Z     {
2026-06-15T13:57:01.5945572Z       "id": "REQ-INST-15",
2026-06-15T13:57:01.5946803Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-15T13:57:01.5946995Z       "requiredStages": [
2026-06-15T13:57:01.5947170Z         "doc",
2026-06-15T13:57:01.5947333Z         "impl",
2026-06-15T13:57:01.5947509Z         "unit"
2026-06-15T13:57:01.5947671Z       ],
2026-06-15T13:57:01.5947848Z       "stages": {
2026-06-15T13:57:01.5948019Z         "doc": {
2026-06-15T13:57:01.5948204Z           "complete": true,
2026-06-15T13:57:01.5948383Z           "evidence": [
2026-06-15T13:57:01.5948545Z             {
2026-06-15T13:57:01.5948860Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-15T13:57:01.5949126Z               "line": 3
2026-06-15T13:57:01.5949304Z             }
2026-06-15T13:57:01.5949480Z           ]
2026-06-15T13:57:01.5949666Z         },
2026-06-15T13:57:01.5949848Z         "impl": {
2026-06-15T13:57:01.5950023Z           "complete": true,
2026-06-15T13:57:01.5950206Z           "evidence": [
2026-06-15T13:57:01.5950366Z             {
2026-06-15T13:57:01.5950618Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.5950794Z               "line": 353
2026-06-15T13:57:01.5950978Z             },
2026-06-15T13:57:01.5951155Z             {
2026-06-15T13:57:01.5951383Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:57:01.5951560Z               "line": 60
2026-06-15T13:57:01.5951727Z             },
2026-06-15T13:57:01.5951908Z             {
2026-06-15T13:57:01.5952146Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.5952434Z               "line": 368
2026-06-15T13:57:01.5952609Z             },
2026-06-15T13:57:01.5952781Z             {
2026-06-15T13:57:01.5953025Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.5953205Z               "line": 417
2026-06-15T13:57:01.5953378Z             },
2026-06-15T13:57:01.5953548Z             {
2026-06-15T13:57:01.5953777Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:57:01.5953953Z               "line": 19
2026-06-15T13:57:01.5954124Z             },
2026-06-15T13:57:01.5954297Z             {
2026-06-15T13:57:01.5954640Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:57:01.5954815Z               "line": 70
2026-06-15T13:57:01.5954983Z             },
2026-06-15T13:57:01.5955164Z             {
2026-06-15T13:57:01.5955383Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:57:01.5955555Z               "line": 96
2026-06-15T13:57:01.5955731Z             },
2026-06-15T13:57:01.5955902Z             {
2026-06-15T13:57:01.5956128Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:57:01.5956301Z               "line": 121
2026-06-15T13:57:01.5956481Z             },
2026-06-15T13:57:01.5956653Z             {
2026-06-15T13:57:01.5956864Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:57:01.5957044Z               "line": 172
2026-06-15T13:57:01.5957207Z             },
2026-06-15T13:57:01.5957387Z             {
2026-06-15T13:57:01.5957602Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.5957774Z               "line": 146
2026-06-15T13:57:01.5957950Z             },
2026-06-15T13:57:01.5958123Z             {
2026-06-15T13:57:01.5958322Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.5958499Z               "line": 1270
2026-06-15T13:57:01.5958659Z             }
2026-06-15T13:57:01.5958831Z           ]
2026-06-15T13:57:01.5959086Z         },
2026-06-15T13:57:01.5959263Z         "int": {
2026-06-15T13:57:01.5959454Z           "complete": false,
2026-06-15T13:57:01.5959634Z           "evidence": []
2026-06-15T13:57:01.5959807Z         },
2026-06-15T13:57:01.5959982Z         "unit": {
2026-06-15T13:57:01.5960159Z           "complete": true,
2026-06-15T13:57:01.5960335Z           "evidence": [
2026-06-15T13:57:01.5960511Z             {
2026-06-15T13:57:01.5960751Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.5960926Z               "line": 577
2026-06-15T13:57:01.5961099Z             },
2026-06-15T13:57:01.5961278Z             {
2026-06-15T13:57:01.5961519Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.5961739Z               "line": 638
2026-06-15T13:57:01.5961905Z             },
2026-06-15T13:57:01.5962116Z             {
2026-06-15T13:57:01.5962326Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:57:01.5962496Z               "line": 213
2026-06-15T13:57:01.5962702Z             },
2026-06-15T13:57:01.5962892Z             {
2026-06-15T13:57:01.5963193Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:57:01.5963378Z               "line": 249
2026-06-15T13:57:01.5963552Z             },
2026-06-15T13:57:01.5963726Z             {
2026-06-15T13:57:01.5963938Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:57:01.5964117Z               "line": 262
2026-06-15T13:57:01.5964289Z             },
2026-06-15T13:57:01.5964455Z             {
2026-06-15T13:57:01.5964671Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:57:01.5964838Z               "line": 338
2026-06-15T13:57:01.5965018Z             },
2026-06-15T13:57:01.5965181Z             {
2026-06-15T13:57:01.5965404Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.5965581Z               "line": 543
2026-06-15T13:57:01.5965748Z             },
2026-06-15T13:57:01.5965910Z             {
2026-06-15T13:57:01.5966111Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.5966291Z               "line": 6557
2026-06-15T13:57:01.5966575Z             },
2026-06-15T13:57:01.5966746Z             {
2026-06-15T13:57:01.5966956Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.5967133Z               "line": 8251
2026-06-15T13:57:01.5967303Z             }
2026-06-15T13:57:01.5967476Z           ]
2026-06-15T13:57:01.5967647Z         }
2026-06-15T13:57:01.5967819Z       }
2026-06-15T13:57:01.5967980Z     },
2026-06-15T13:57:01.5968157Z     {
2026-06-15T13:57:01.5968339Z       "id": "REQ-INST-2",
2026-06-15T13:57:01.5968572Z       "title": "Per-node files, synced Psyche mind",
2026-06-15T13:57:01.5968858Z       "requiredStages": [
2026-06-15T13:57:01.5969116Z         "impl",
2026-06-15T13:57:01.5969276Z         "unit"
2026-06-15T13:57:01.5969484Z       ],
2026-06-15T13:57:01.5969666Z       "stages": {
2026-06-15T13:57:01.5969837Z         "doc": {
2026-06-15T13:57:01.5970024Z           "complete": false,
2026-06-15T13:57:01.5970203Z           "evidence": []
2026-06-15T13:57:01.5970376Z         },
2026-06-15T13:57:01.5970557Z         "impl": {
2026-06-15T13:57:01.5970748Z           "complete": true,
2026-06-15T13:57:01.5970930Z           "evidence": [
2026-06-15T13:57:01.5971095Z             {
2026-06-15T13:57:01.5971335Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.5971511Z               "line": 88
2026-06-15T13:57:01.5971683Z             },
2026-06-15T13:57:01.5971843Z             {
2026-06-15T13:57:01.5972070Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:57:01.5972246Z               "line": 28
2026-06-15T13:57:01.5972417Z             },
2026-06-15T13:57:01.5972595Z             {
2026-06-15T13:57:01.5972813Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:57:01.5972995Z               "line": 74
2026-06-15T13:57:01.5973158Z             },
2026-06-15T13:57:01.5973334Z             {
2026-06-15T13:57:01.5973558Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:57:01.5973734Z               "line": 96
2026-06-15T13:57:01.5973920Z             },
2026-06-15T13:57:01.5974083Z             {
2026-06-15T13:57:01.5974296Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T13:57:01.5974474Z               "line": 86
2026-06-15T13:57:01.5974653Z             },
2026-06-15T13:57:01.5974826Z             {
2026-06-15T13:57:01.5975044Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:57:01.5975222Z               "line": 118
2026-06-15T13:57:01.5975393Z             }
2026-06-15T13:57:01.5975560Z           ]
2026-06-15T13:57:01.5975722Z         },
2026-06-15T13:57:01.5975898Z         "int": {
2026-06-15T13:57:01.5976095Z           "complete": false,
2026-06-15T13:57:01.5976274Z           "evidence": []
2026-06-15T13:57:01.5976452Z         },
2026-06-15T13:57:01.5976618Z         "unit": {
2026-06-15T13:57:01.5976813Z           "complete": true,
2026-06-15T13:57:01.5976989Z           "evidence": [
2026-06-15T13:57:01.5977163Z             {
2026-06-15T13:57:01.5977392Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:57:01.5977577Z               "line": 250
2026-06-15T13:57:01.5977754Z             },
2026-06-15T13:57:01.5977920Z             {
2026-06-15T13:57:01.5978140Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T13:57:01.5978323Z               "line": 280
2026-06-15T13:57:01.5978497Z             }
2026-06-15T13:57:01.5978675Z           ]
2026-06-15T13:57:01.5978836Z         }
2026-06-15T13:57:01.5979103Z       }
2026-06-15T13:57:01.5979272Z     },
2026-06-15T13:57:01.5979447Z     {
2026-06-15T13:57:01.5979624Z       "id": "REQ-INST-3",
2026-06-15T13:57:01.5979918Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-15T13:57:01.5980111Z       "requiredStages": [
2026-06-15T13:57:01.5980283Z         "doc",
2026-06-15T13:57:01.5980458Z         "impl",
2026-06-15T13:57:01.5980622Z         "unit"
2026-06-15T13:57:01.5980797Z       ],
2026-06-15T13:57:01.5980975Z       "stages": {
2026-06-15T13:57:01.5981151Z         "doc": {
2026-06-15T13:57:01.5981341Z           "complete": true,
2026-06-15T13:57:01.5981623Z           "evidence": [
2026-06-15T13:57:01.5981800Z             {
2026-06-15T13:57:01.5982009Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-15T13:57:01.5982191Z               "line": 3
2026-06-15T13:57:01.5982356Z             }
2026-06-15T13:57:01.5982527Z           ]
2026-06-15T13:57:01.5982696Z         },
2026-06-15T13:57:01.5982874Z         "impl": {
2026-06-15T13:57:01.5983054Z           "complete": true,
2026-06-15T13:57:01.5983227Z           "evidence": [
2026-06-15T13:57:01.5983408Z             {
2026-06-15T13:57:01.5983747Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T13:57:01.5983927Z               "line": 59
2026-06-15T13:57:01.5984104Z             },
2026-06-15T13:57:01.5984270Z             {
2026-06-15T13:57:01.5984499Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:57:01.5984677Z               "line": 480
2026-06-15T13:57:01.5984856Z             },
2026-06-15T13:57:01.5985016Z             {
2026-06-15T13:57:01.5985266Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.5985448Z               "line": 204
2026-06-15T13:57:01.5985613Z             },
2026-06-15T13:57:01.5985791Z             {
2026-06-15T13:57:01.5986011Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.5986195Z               "line": 334
2026-06-15T13:57:01.5986363Z             },
2026-06-15T13:57:01.5986529Z             {
2026-06-15T13:57:01.5986763Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.5986936Z               "line": 368
2026-06-15T13:57:01.5987116Z             },
2026-06-15T13:57:01.5987279Z             {
2026-06-15T13:57:01.5987505Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-15T13:57:01.5987686Z               "line": 74
2026-06-15T13:57:01.5987846Z             },
2026-06-15T13:57:01.5988015Z             {
2026-06-15T13:57:01.5988258Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.5988447Z               "line": 234
2026-06-15T13:57:01.5988610Z             },
2026-06-15T13:57:01.5988786Z             {
2026-06-15T13:57:01.5989101Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.5989282Z               "line": 390
2026-06-15T13:57:01.5989459Z             },
2026-06-15T13:57:01.5989625Z             {
2026-06-15T13:57:01.5989856Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.5990021Z               "line": 45
2026-06-15T13:57:01.5990194Z             },
2026-06-15T13:57:01.5990368Z             {
2026-06-15T13:57:01.5990609Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.5990805Z               "line": 114
2026-06-15T13:57:01.5990966Z             },
2026-06-15T13:57:01.5991139Z             {
2026-06-15T13:57:01.5991357Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.5991540Z               "line": 152
2026-06-15T13:57:01.5991720Z             },
2026-06-15T13:57:01.5991897Z             {
2026-06-15T13:57:01.5992126Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.5992297Z               "line": 168
2026-06-15T13:57:01.5992478Z             },
2026-06-15T13:57:01.5992646Z             {
2026-06-15T13:57:01.5992878Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.5993064Z               "line": 178
2026-06-15T13:57:01.5993223Z             },
2026-06-15T13:57:01.5993406Z             {
2026-06-15T13:57:01.5993633Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.5993810Z               "line": 210
2026-06-15T13:57:01.5993973Z             },
2026-06-15T13:57:01.5994158Z             {
2026-06-15T13:57:01.5994383Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.5994563Z               "line": 287
2026-06-15T13:57:01.5994735Z             },
2026-06-15T13:57:01.5994902Z             {
2026-06-15T13:57:01.5995131Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.5995417Z               "line": 311
2026-06-15T13:57:01.5995595Z             },
2026-06-15T13:57:01.5995759Z             {
2026-06-15T13:57:01.5995979Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.5996165Z               "line": 389
2026-06-15T13:57:01.5996332Z             },
2026-06-15T13:57:01.5996508Z             {
2026-06-15T13:57:01.5996727Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.5996900Z               "line": 438
2026-06-15T13:57:01.5997075Z             },
2026-06-15T13:57:01.5997343Z             {
2026-06-15T13:57:01.5997567Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-15T13:57:01.5997743Z               "line": 37
2026-06-15T13:57:01.5997919Z             },
2026-06-15T13:57:01.5998094Z             {
2026-06-15T13:57:01.5998321Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.5998503Z               "line": 62
2026-06-15T13:57:01.5998674Z             },
2026-06-15T13:57:01.5998851Z             {
2026-06-15T13:57:01.5999166Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.6004108Z               "line": 200
2026-06-15T13:57:01.6004323Z             },
2026-06-15T13:57:01.6004484Z             {
2026-06-15T13:57:01.6004699Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6004872Z               "line": 1603
2026-06-15T13:57:01.6005033Z             }
2026-06-15T13:57:01.6005201Z           ]
2026-06-15T13:57:01.6005371Z         },
2026-06-15T13:57:01.6005549Z         "int": {
2026-06-15T13:57:01.6005743Z           "complete": false,
2026-06-15T13:57:01.6005929Z           "evidence": []
2026-06-15T13:57:01.6006093Z         },
2026-06-15T13:57:01.6006267Z         "unit": {
2026-06-15T13:57:01.6006443Z           "complete": true,
2026-06-15T13:57:01.6006610Z           "evidence": [
2026-06-15T13:57:01.6006778Z             {
2026-06-15T13:57:01.6007005Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:57:01.6007188Z               "line": 360
2026-06-15T13:57:01.6007354Z             },
2026-06-15T13:57:01.6007517Z             {
2026-06-15T13:57:01.6007756Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.6007931Z               "line": 787
2026-06-15T13:57:01.6008094Z             },
2026-06-15T13:57:01.6008265Z             {
2026-06-15T13:57:01.6008508Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.6008683Z               "line": 844
2026-06-15T13:57:01.6008853Z             },
2026-06-15T13:57:01.6009111Z             {
2026-06-15T13:57:01.6009363Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.6009558Z               "line": 889
2026-06-15T13:57:01.6009717Z             },
2026-06-15T13:57:01.6009877Z             {
2026-06-15T13:57:01.6010102Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.6010289Z               "line": 1014
2026-06-15T13:57:01.6010451Z             },
2026-06-15T13:57:01.6010627Z             {
2026-06-15T13:57:01.6010875Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6011046Z               "line": 1212
2026-06-15T13:57:01.6011204Z             },
2026-06-15T13:57:01.6011366Z             {
2026-06-15T13:57:01.6011612Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6011781Z               "line": 1353
2026-06-15T13:57:01.6011945Z             },
2026-06-15T13:57:01.6012106Z             {
2026-06-15T13:57:01.6012331Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.6012522Z               "line": 449
2026-06-15T13:57:01.6012684Z             },
2026-06-15T13:57:01.6012851Z             {
2026-06-15T13:57:01.6013074Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.6013251Z               "line": 485
2026-06-15T13:57:01.6013418Z             },
2026-06-15T13:57:01.6013599Z             {
2026-06-15T13:57:01.6013829Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.6014160Z               "line": 540
2026-06-15T13:57:01.6014334Z             },
2026-06-15T13:57:01.6014506Z             {
2026-06-15T13:57:01.6014730Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.6014907Z               "line": 697
2026-06-15T13:57:01.6015069Z             },
2026-06-15T13:57:01.6015231Z             {
2026-06-15T13:57:01.6015451Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.6015626Z               "line": 931
2026-06-15T13:57:01.6015803Z             },
2026-06-15T13:57:01.6016100Z             {
2026-06-15T13:57:01.6016328Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.6016503Z               "line": 945
2026-06-15T13:57:01.6016676Z             },
2026-06-15T13:57:01.6016841Z             {
2026-06-15T13:57:01.6017076Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.6017251Z               "line": 1214
2026-06-15T13:57:01.6017428Z             },
2026-06-15T13:57:01.6017599Z             {
2026-06-15T13:57:01.6017814Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.6018010Z               "line": 440
2026-06-15T13:57:01.6018186Z             },
2026-06-15T13:57:01.6018349Z             {
2026-06-15T13:57:01.6018543Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6018720Z               "line": 6581
2026-06-15T13:57:01.6018882Z             }
2026-06-15T13:57:01.6019120Z           ]
2026-06-15T13:57:01.6019282Z         }
2026-06-15T13:57:01.6019446Z       }
2026-06-15T13:57:01.6019623Z     },
2026-06-15T13:57:01.6019798Z     {
2026-06-15T13:57:01.6019977Z       "id": "REQ-INST-4",
2026-06-15T13:57:01.6020300Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-15T13:57:01.6020481Z       "requiredStages": [
2026-06-15T13:57:01.6020657Z         "impl",
2026-06-15T13:57:01.6020834Z         "unit"
2026-06-15T13:57:01.6020996Z       ],
2026-06-15T13:57:01.6021179Z       "stages": {
2026-06-15T13:57:01.6021344Z         "doc": {
2026-06-15T13:57:01.6021531Z           "complete": false,
2026-06-15T13:57:01.6021707Z           "evidence": []
2026-06-15T13:57:01.6021865Z         },
2026-06-15T13:57:01.6022044Z         "impl": {
2026-06-15T13:57:01.6022224Z           "complete": true,
2026-06-15T13:57:01.6022404Z           "evidence": [
2026-06-15T13:57:01.6022572Z             {
2026-06-15T13:57:01.6022810Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.6022980Z               "line": 335
2026-06-15T13:57:01.6023149Z             },
2026-06-15T13:57:01.6023324Z             {
2026-06-15T13:57:01.6023558Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.6023735Z               "line": 202
2026-06-15T13:57:01.6023896Z             },
2026-06-15T13:57:01.6024064Z             {
2026-06-15T13:57:01.6024287Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.6024456Z               "line": 234
2026-06-15T13:57:01.6024625Z             },
2026-06-15T13:57:01.6024801Z             {
2026-06-15T13:57:01.6025023Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.6025195Z               "line": 274
2026-06-15T13:57:01.6025368Z             }
2026-06-15T13:57:01.6025523Z           ]
2026-06-15T13:57:01.6025682Z         },
2026-06-15T13:57:01.6025852Z         "int": {
2026-06-15T13:57:01.6026030Z           "complete": false,
2026-06-15T13:57:01.6026210Z           "evidence": []
2026-06-15T13:57:01.6026373Z         },
2026-06-15T13:57:01.6026554Z         "unit": {
2026-06-15T13:57:01.6026739Z           "complete": true,
2026-06-15T13:57:01.6026903Z           "evidence": [
2026-06-15T13:57:01.6027068Z             {
2026-06-15T13:57:01.6027299Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.6027482Z               "line": 839
2026-06-15T13:57:01.6027650Z             },
2026-06-15T13:57:01.6027816Z             {
2026-06-15T13:57:01.6028031Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.6028327Z               "line": 561
2026-06-15T13:57:01.6028494Z             },
2026-06-15T13:57:01.6028656Z             {
2026-06-15T13:57:01.6028872Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.6029128Z               "line": 668
2026-06-15T13:57:01.6029313Z             },
2026-06-15T13:57:01.6029472Z             {
2026-06-15T13:57:01.6029694Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.6029870Z               "line": 750
2026-06-15T13:57:01.6030035Z             }
2026-06-15T13:57:01.6030312Z           ]
2026-06-15T13:57:01.6030479Z         }
2026-06-15T13:57:01.6030640Z       }
2026-06-15T13:57:01.6030808Z     },
2026-06-15T13:57:01.6030979Z     {
2026-06-15T13:57:01.6031161Z       "id": "REQ-INST-5",
2026-06-15T13:57:01.6031485Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-15T13:57:01.6031665Z       "requiredStages": [
2026-06-15T13:57:01.6031837Z         "impl",
2026-06-15T13:57:01.6032015Z         "unit",
2026-06-15T13:57:01.6032180Z         "int"
2026-06-15T13:57:01.6032344Z       ],
2026-06-15T13:57:01.6032505Z       "stages": {
2026-06-15T13:57:01.6032675Z         "doc": {
2026-06-15T13:57:01.6032860Z           "complete": false,
2026-06-15T13:57:01.6033031Z           "evidence": []
2026-06-15T13:57:01.6033193Z         },
2026-06-15T13:57:01.6033351Z         "impl": {
2026-06-15T13:57:01.6033532Z           "complete": true,
2026-06-15T13:57:01.6033699Z           "evidence": [
2026-06-15T13:57:01.6033874Z             {
2026-06-15T13:57:01.6034123Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-15T13:57:01.6034300Z               "line": 85
2026-06-15T13:57:01.6034466Z             },
2026-06-15T13:57:01.6034634Z             {
2026-06-15T13:57:01.6034857Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:57:01.6035039Z               "line": 68
2026-06-15T13:57:01.6035204Z             },
2026-06-15T13:57:01.6035370Z             {
2026-06-15T13:57:01.6035588Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:57:01.6035764Z               "line": 99
2026-06-15T13:57:01.6035923Z             },
2026-06-15T13:57:01.6036088Z             {
2026-06-15T13:57:01.6036313Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:57:01.6036484Z               "line": 183
2026-06-15T13:57:01.6036661Z             },
2026-06-15T13:57:01.6036828Z             {
2026-06-15T13:57:01.6037042Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:57:01.6037220Z               "line": 314
2026-06-15T13:57:01.6037400Z             }
2026-06-15T13:57:01.6037568Z           ]
2026-06-15T13:57:01.6037734Z         },
2026-06-15T13:57:01.6037906Z         "int": {
2026-06-15T13:57:01.6038095Z           "complete": true,
2026-06-15T13:57:01.6038277Z           "evidence": [
2026-06-15T13:57:01.6038448Z             {
2026-06-15T13:57:01.6038691Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:57:01.6038882Z               "line": 156
2026-06-15T13:57:01.6039126Z             },
2026-06-15T13:57:01.6039301Z             {
2026-06-15T13:57:01.6039530Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T13:57:01.6039713Z               "line": 102
2026-06-15T13:57:01.6039883Z             },
2026-06-15T13:57:01.6040056Z             {
2026-06-15T13:57:01.6040287Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6040463Z               "line": 638
2026-06-15T13:57:01.6040628Z             },
2026-06-15T13:57:01.6040796Z             {
2026-06-15T13:57:01.6041034Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6041200Z               "line": 975
2026-06-15T13:57:01.6041364Z             }
2026-06-15T13:57:01.6041534Z           ]
2026-06-15T13:57:01.6041697Z         },
2026-06-15T13:57:01.6041868Z         "unit": {
2026-06-15T13:57:01.6042045Z           "complete": true,
2026-06-15T13:57:01.6042221Z           "evidence": [
2026-06-15T13:57:01.6042502Z             {
2026-06-15T13:57:01.6042731Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:57:01.6042913Z               "line": 552
2026-06-15T13:57:01.6043084Z             },
2026-06-15T13:57:01.6043255Z             {
2026-06-15T13:57:01.6043467Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:57:01.6043659Z               "line": 595
2026-06-15T13:57:01.6043824Z             },
2026-06-15T13:57:01.6043992Z             {
2026-06-15T13:57:01.6044217Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T13:57:01.6044493Z               "line": 219
2026-06-15T13:57:01.6044678Z             }
2026-06-15T13:57:01.6044841Z           ]
2026-06-15T13:57:01.6045002Z         }
2026-06-15T13:57:01.6045166Z       }
2026-06-15T13:57:01.6045331Z     },
2026-06-15T13:57:01.6045509Z     {
2026-06-15T13:57:01.6045693Z       "id": "REQ-INST-6",
2026-06-15T13:57:01.6046158Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-15T13:57:01.6046357Z       "requiredStages": [
2026-06-15T13:57:01.6046526Z         "impl",
2026-06-15T13:57:01.6046701Z         "unit",
2026-06-15T13:57:01.6046912Z         "int"
2026-06-15T13:57:01.6047112Z       ],
2026-06-15T13:57:01.6047297Z       "stages": {
2026-06-15T13:57:01.6047461Z         "doc": {
2026-06-15T13:57:01.6047650Z           "complete": true,
2026-06-15T13:57:01.6047827Z           "evidence": [
2026-06-15T13:57:01.6048004Z             {
2026-06-15T13:57:01.6048198Z               "path": "docs/DEFERRED.md",
2026-06-15T13:57:01.6048381Z               "line": 13
2026-06-15T13:57:01.6048560Z             }
2026-06-15T13:57:01.6048732Z           ]
2026-06-15T13:57:01.6048893Z         },
2026-06-15T13:57:01.6049161Z         "impl": {
2026-06-15T13:57:01.6049357Z           "complete": true,
2026-06-15T13:57:01.6049537Z           "evidence": [
2026-06-15T13:57:01.6049705Z             {
2026-06-15T13:57:01.6049948Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:57:01.6050129Z               "line": 391
2026-06-15T13:57:01.6050311Z             },
2026-06-15T13:57:01.6050477Z             {
2026-06-15T13:57:01.6050711Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T13:57:01.6050900Z               "line": 27
2026-06-15T13:57:01.6051061Z             },
2026-06-15T13:57:01.6051232Z             {
2026-06-15T13:57:01.6051460Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T13:57:01.6051637Z               "line": 73
2026-06-15T13:57:01.6051799Z             },
2026-06-15T13:57:01.6051962Z             {
2026-06-15T13:57:01.6052195Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T13:57:01.6052376Z               "line": 182
2026-06-15T13:57:01.6052553Z             },
2026-06-15T13:57:01.6052719Z             {
2026-06-15T13:57:01.6052953Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.6053130Z               "line": 426
2026-06-15T13:57:01.6053305Z             },
2026-06-15T13:57:01.6053478Z             {
2026-06-15T13:57:01.6053710Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-15T13:57:01.6053891Z               "line": 31
2026-06-15T13:57:01.6054060Z             },
2026-06-15T13:57:01.6054228Z             {
2026-06-15T13:57:01.6054447Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.6054632Z               "line": 202
2026-06-15T13:57:01.6054801Z             },
2026-06-15T13:57:01.6054966Z             {
2026-06-15T13:57:01.6055195Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:57:01.6055377Z               "line": 83
2026-06-15T13:57:01.6055553Z             },
2026-06-15T13:57:01.6055716Z             {
2026-06-15T13:57:01.6055930Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6056121Z               "line": 1604
2026-06-15T13:57:01.6056277Z             },
2026-06-15T13:57:01.6056448Z             {
2026-06-15T13:57:01.6056665Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:57:01.6056956Z               "line": 179
2026-06-15T13:57:01.6057128Z             },
2026-06-15T13:57:01.6057300Z             {
2026-06-15T13:57:01.6057514Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:57:01.6057701Z               "line": 215
2026-06-15T13:57:01.6057872Z             }
2026-06-15T13:57:01.6058035Z           ]
2026-06-15T13:57:01.6058200Z         },
2026-06-15T13:57:01.6058368Z         "int": {
2026-06-15T13:57:01.6058554Z           "complete": true,
2026-06-15T13:57:01.6058735Z           "evidence": [
2026-06-15T13:57:01.6058898Z             {
2026-06-15T13:57:01.6059340Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6059516Z               "line": 652
2026-06-15T13:57:01.6059688Z             },
2026-06-15T13:57:01.6059854Z             {
2026-06-15T13:57:01.6060083Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6060270Z               "line": 1020
2026-06-15T13:57:01.6060435Z             },
2026-06-15T13:57:01.6060604Z             {
2026-06-15T13:57:01.6060799Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:57:01.6060970Z               "line": 726
2026-06-15T13:57:01.6061137Z             }
2026-06-15T13:57:01.6061304Z           ]
2026-06-15T13:57:01.6061475Z         },
2026-06-15T13:57:01.6061649Z         "unit": {
2026-06-15T13:57:01.6061835Z           "complete": true,
2026-06-15T13:57:01.6062011Z           "evidence": [
2026-06-15T13:57:01.6062179Z             {
2026-06-15T13:57:01.6062411Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:57:01.6062603Z               "line": 661
2026-06-15T13:57:01.6062775Z             },
2026-06-15T13:57:01.6062946Z             {
2026-06-15T13:57:01.6063180Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.6063356Z               "line": 899
2026-06-15T13:57:01.6063522Z             },
2026-06-15T13:57:01.6063695Z             {
2026-06-15T13:57:01.6063918Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-15T13:57:01.6064111Z               "line": 66
2026-06-15T13:57:01.6064275Z             },
2026-06-15T13:57:01.6064446Z             {
2026-06-15T13:57:01.6064659Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.6064840Z               "line": 297
2026-06-15T13:57:01.6065007Z             },
2026-06-15T13:57:01.6065183Z             {
2026-06-15T13:57:01.6065408Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:57:01.6065574Z               "line": 203
2026-06-15T13:57:01.6065746Z             }
2026-06-15T13:57:01.6065927Z           ]
2026-06-15T13:57:01.6066113Z         }
2026-06-15T13:57:01.6066286Z       }
2026-06-15T13:57:01.6066480Z     },
2026-06-15T13:57:01.6066653Z     {
2026-06-15T13:57:01.6066851Z       "id": "REQ-INST-7",
2026-06-15T13:57:01.6067172Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-15T13:57:01.6067351Z       "requiredStages": [
2026-06-15T13:57:01.6067545Z         "impl",
2026-06-15T13:57:01.6067741Z         "unit",
2026-06-15T13:57:01.6067927Z         "int"
2026-06-15T13:57:01.6068098Z       ],
2026-06-15T13:57:01.6068275Z       "stages": {
2026-06-15T13:57:01.6068446Z         "doc": {
2026-06-15T13:57:01.6068628Z           "complete": false,
2026-06-15T13:57:01.6068814Z           "evidence": []
2026-06-15T13:57:01.6069071Z         },
2026-06-15T13:57:01.6069253Z         "impl": {
2026-06-15T13:57:01.6069429Z           "complete": true,
2026-06-15T13:57:01.6069596Z           "evidence": [
2026-06-15T13:57:01.6069766Z             {
2026-06-15T13:57:01.6070032Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:57:01.6070225Z               "line": 436
2026-06-15T13:57:01.6070390Z             },
2026-06-15T13:57:01.6070558Z             {
2026-06-15T13:57:01.6070801Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6070977Z               "line": 27
2026-06-15T13:57:01.6071145Z             },
2026-06-15T13:57:01.6071311Z             {
2026-06-15T13:57:01.6071712Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6071892Z               "line": 207
2026-06-15T13:57:01.6072068Z             },
2026-06-15T13:57:01.6072247Z             {
2026-06-15T13:57:01.6072482Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6072662Z               "line": 344
2026-06-15T13:57:01.6072829Z             },
2026-06-15T13:57:01.6073001Z             {
2026-06-15T13:57:01.6073224Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-15T13:57:01.6073411Z               "line": 59
2026-06-15T13:57:01.6073693Z             },
2026-06-15T13:57:01.6073849Z             {
2026-06-15T13:57:01.6074083Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.6074250Z               "line": 41
2026-06-15T13:57:01.6074426Z             },
2026-06-15T13:57:01.6074589Z             {
2026-06-15T13:57:01.6074816Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:57:01.6074997Z               "line": 27
2026-06-15T13:57:01.6075166Z             },
2026-06-15T13:57:01.6075334Z             {
2026-06-15T13:57:01.6075563Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:57:01.6075772Z               "line": 119
2026-06-15T13:57:01.6075940Z             },
2026-06-15T13:57:01.6076110Z             {
2026-06-15T13:57:01.6076349Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:57:01.6076526Z               "line": 134
2026-06-15T13:57:01.6076707Z             },
2026-06-15T13:57:01.6076870Z             {
2026-06-15T13:57:01.6077103Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:57:01.6077279Z               "line": 139
2026-06-15T13:57:01.6077449Z             }
2026-06-15T13:57:01.6077624Z           ]
2026-06-15T13:57:01.6077791Z         },
2026-06-15T13:57:01.6077958Z         "int": {
2026-06-15T13:57:01.6078144Z           "complete": true,
2026-06-15T13:57:01.6078329Z           "evidence": [
2026-06-15T13:57:01.6078492Z             {
2026-06-15T13:57:01.6078725Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T13:57:01.6078911Z               "line": 102
2026-06-15T13:57:01.6079169Z             },
2026-06-15T13:57:01.6079335Z             {
2026-06-15T13:57:01.6079569Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6079752Z               "line": 596
2026-06-15T13:57:01.6079927Z             },
2026-06-15T13:57:01.6080099Z             {
2026-06-15T13:57:01.6080326Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6080499Z               "line": 870
2026-06-15T13:57:01.6080679Z             }
2026-06-15T13:57:01.6080851Z           ]
2026-06-15T13:57:01.6081019Z         },
2026-06-15T13:57:01.6081199Z         "unit": {
2026-06-15T13:57:01.6081371Z           "complete": true,
2026-06-15T13:57:01.6081565Z           "evidence": [
2026-06-15T13:57:01.6081729Z             {
2026-06-15T13:57:01.6081982Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6082167Z               "line": 1082
2026-06-15T13:57:01.6082335Z             },
2026-06-15T13:57:01.6082499Z             {
2026-06-15T13:57:01.6082732Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6082902Z               "line": 1414
2026-06-15T13:57:01.6083070Z             },
2026-06-15T13:57:01.6083241Z             {
2026-06-15T13:57:01.6083464Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-15T13:57:01.6083647Z               "line": 84
2026-06-15T13:57:01.6083813Z             },
2026-06-15T13:57:01.6083981Z             {
2026-06-15T13:57:01.6084215Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.6084395Z               "line": 780
2026-06-15T13:57:01.6084558Z             },
2026-06-15T13:57:01.6084720Z             {
2026-06-15T13:57:01.6084953Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.6085145Z               "line": 791
2026-06-15T13:57:01.6085310Z             },
2026-06-15T13:57:01.6085609Z             {
2026-06-15T13:57:01.6085841Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.6086027Z               "line": 806
2026-06-15T13:57:01.6086200Z             },
2026-06-15T13:57:01.6086365Z             {
2026-06-15T13:57:01.6086609Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:57:01.6086786Z               "line": 166
2026-06-15T13:57:01.6086961Z             },
2026-06-15T13:57:01.6087130Z             {
2026-06-15T13:57:01.6087362Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:57:01.6087653Z               "line": 181
2026-06-15T13:57:01.6087821Z             },
2026-06-15T13:57:01.6087990Z             {
2026-06-15T13:57:01.6088222Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:57:01.6088408Z               "line": 214
2026-06-15T13:57:01.6088574Z             }
2026-06-15T13:57:01.6088738Z           ]
2026-06-15T13:57:01.6088913Z         }
2026-06-15T13:57:01.6089162Z       }
2026-06-15T13:57:01.6089348Z     },
2026-06-15T13:57:01.6089519Z     {
2026-06-15T13:57:01.6089692Z       "id": "REQ-INST-8",
2026-06-15T13:57:01.6089978Z       "title": "Remote-control mode distinct from local operation",
2026-06-15T13:57:01.6090167Z       "requiredStages": [
2026-06-15T13:57:01.6090345Z         "impl",
2026-06-15T13:57:01.6090506Z         "unit",
2026-06-15T13:57:01.6090692Z         "int"
2026-06-15T13:57:01.6090862Z       ],
2026-06-15T13:57:01.6091040Z       "stages": {
2026-06-15T13:57:01.6091210Z         "doc": {
2026-06-15T13:57:01.6091402Z           "complete": false,
2026-06-15T13:57:01.6091589Z           "evidence": []
2026-06-15T13:57:01.6091759Z         },
2026-06-15T13:57:01.6091936Z         "impl": {
2026-06-15T13:57:01.6092107Z           "complete": true,
2026-06-15T13:57:01.6092289Z           "evidence": [
2026-06-15T13:57:01.6092450Z             {
2026-06-15T13:57:01.6092684Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T13:57:01.6092876Z               "line": 104
2026-06-15T13:57:01.6093045Z             },
2026-06-15T13:57:01.6093212Z             {
2026-06-15T13:57:01.6093429Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T13:57:01.6093626Z               "line": 299
2026-06-15T13:57:01.6093801Z             },
2026-06-15T13:57:01.6093963Z             {
2026-06-15T13:57:01.6094193Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T13:57:01.6094373Z               "line": 339
2026-06-15T13:57:01.6094546Z             },
2026-06-15T13:57:01.6094712Z             {
2026-06-15T13:57:01.6094941Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:57:01.6095118Z               "line": 62
2026-06-15T13:57:01.6095289Z             }
2026-06-15T13:57:01.6095461Z           ]
2026-06-15T13:57:01.6095623Z         },
2026-06-15T13:57:01.6095786Z         "int": {
2026-06-15T13:57:01.6095974Z           "complete": true,
2026-06-15T13:57:01.6096155Z           "evidence": [
2026-06-15T13:57:01.6096383Z             {
2026-06-15T13:57:01.6096644Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:57:01.6096831Z               "line": 415
2026-06-15T13:57:01.6096998Z             },
2026-06-15T13:57:01.6097179Z             {
2026-06-15T13:57:01.6097408Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6097589Z               "line": 934
2026-06-15T13:57:01.6097747Z             }
2026-06-15T13:57:01.6097913Z           ]
2026-06-15T13:57:01.6098089Z         },
2026-06-15T13:57:01.6098257Z         "unit": {
2026-06-15T13:57:01.6098456Z           "complete": true,
2026-06-15T13:57:01.6098622Z           "evidence": [
2026-06-15T13:57:01.6098791Z             {
2026-06-15T13:57:01.6099088Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:57:01.6099274Z               "line": 358
2026-06-15T13:57:01.6099463Z             },
2026-06-15T13:57:01.6099627Z             {
2026-06-15T13:57:01.6099855Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:57:01.6100141Z               "line": 513
2026-06-15T13:57:01.6100317Z             },
2026-06-15T13:57:01.6100489Z             {
2026-06-15T13:57:01.6100723Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:57:01.6100896Z               "line": 116
2026-06-15T13:57:01.6101061Z             },
2026-06-15T13:57:01.6101225Z             {
2026-06-15T13:57:01.6101441Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:57:01.6101619Z               "line": 160
2026-06-15T13:57:01.6101775Z             }
2026-06-15T13:57:01.6102052Z           ]
2026-06-15T13:57:01.6102224Z         }
2026-06-15T13:57:01.6102390Z       }
2026-06-15T13:57:01.6102558Z     },
2026-06-15T13:57:01.6102724Z     {
2026-06-15T13:57:01.6102901Z       "id": "REQ-INST-9",
2026-06-15T13:57:01.6103239Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-15T13:57:01.6103417Z       "requiredStages": [
2026-06-15T13:57:01.6103596Z         "impl",
2026-06-15T13:57:01.6103777Z         "unit"
2026-06-15T13:57:01.6103942Z       ],
2026-06-15T13:57:01.6104114Z       "stages": {
2026-06-15T13:57:01.6104284Z         "doc": {
2026-06-15T13:57:01.6104458Z           "complete": false,
2026-06-15T13:57:01.6104632Z           "evidence": []
2026-06-15T13:57:01.6104801Z         },
2026-06-15T13:57:01.6104967Z         "impl": {
2026-06-15T13:57:01.6105158Z           "complete": true,
2026-06-15T13:57:01.6105340Z           "evidence": [
2026-06-15T13:57:01.6105510Z             {
2026-06-15T13:57:01.6105735Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.6105926Z               "line": 417
2026-06-15T13:57:01.6106101Z             }
2026-06-15T13:57:01.6106274Z           ]
2026-06-15T13:57:01.6106450Z         },
2026-06-15T13:57:01.6106611Z         "int": {
2026-06-15T13:57:01.6106804Z           "complete": false,
2026-06-15T13:57:01.6106981Z           "evidence": []
2026-06-15T13:57:01.6107161Z         },
2026-06-15T13:57:01.6107334Z         "unit": {
2026-06-15T13:57:01.6107524Z           "complete": true,
2026-06-15T13:57:01.6107706Z           "evidence": [
2026-06-15T13:57:01.6107877Z             {
2026-06-15T13:57:01.6108115Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.6108297Z               "line": 1321
2026-06-15T13:57:01.6108463Z             },
2026-06-15T13:57:01.6108636Z             {
2026-06-15T13:57:01.6108856Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.6109111Z               "line": 1330
2026-06-15T13:57:01.6109296Z             },
2026-06-15T13:57:01.6109481Z             {
2026-06-15T13:57:01.6109709Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.6109891Z               "line": 1346
2026-06-15T13:57:01.6110067Z             },
2026-06-15T13:57:01.6110239Z             {
2026-06-15T13:57:01.6110459Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.6110635Z               "line": 1358
2026-06-15T13:57:01.6110807Z             },
2026-06-15T13:57:01.6110973Z             {
2026-06-15T13:57:01.6111197Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.6111379Z               "line": 1378
2026-06-15T13:57:01.6111549Z             }
2026-06-15T13:57:01.6111732Z           ]
2026-06-15T13:57:01.6111897Z         }
2026-06-15T13:57:01.6112064Z       }
2026-06-15T13:57:01.6112235Z     },
2026-06-15T13:57:01.6112408Z     {
2026-06-15T13:57:01.6112598Z       "id": "REQ-INSTALL-1",
2026-06-15T13:57:01.6112950Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-15T13:57:01.6113146Z       "requiredStages": [
2026-06-15T13:57:01.6113314Z         "doc",
2026-06-15T13:57:01.6113485Z         "impl",
2026-06-15T13:57:01.6113653Z         "int"
2026-06-15T13:57:01.6113823Z       ],
2026-06-15T13:57:01.6114001Z       "stages": {
2026-06-15T13:57:01.6114161Z         "doc": {
2026-06-15T13:57:01.6114352Z           "complete": true,
2026-06-15T13:57:01.6114641Z           "evidence": [
2026-06-15T13:57:01.6114807Z             {
2026-06-15T13:57:01.6114994Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.6115178Z               "line": 694
2026-06-15T13:57:01.6115351Z             }
2026-06-15T13:57:01.6115517Z           ]
2026-06-15T13:57:01.6115690Z         },
2026-06-15T13:57:01.6115866Z         "impl": {
2026-06-15T13:57:01.6116052Z           "complete": true,
2026-06-15T13:57:01.6116229Z           "evidence": [
2026-06-15T13:57:01.6116390Z             {
2026-06-15T13:57:01.6116596Z               "path": "installer/install.ps1",
2026-06-15T13:57:01.6116883Z               "line": 57
2026-06-15T13:57:01.6117057Z             },
2026-06-15T13:57:01.6117219Z             {
2026-06-15T13:57:01.6117430Z               "path": "installer/install.sh",
2026-06-15T13:57:01.6117598Z               "line": 52
2026-06-15T13:57:01.6117769Z             }
2026-06-15T13:57:01.6117942Z           ]
2026-06-15T13:57:01.6118108Z         },
2026-06-15T13:57:01.6118294Z         "int": {
2026-06-15T13:57:01.6118485Z           "complete": true,
2026-06-15T13:57:01.6118666Z           "evidence": [
2026-06-15T13:57:01.6118824Z             {
2026-06-15T13:57:01.6119120Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T13:57:01.6119338Z               "line": 21
2026-06-15T13:57:01.6119520Z             }
2026-06-15T13:57:01.6119690Z           ]
2026-06-15T13:57:01.6119851Z         },
2026-06-15T13:57:01.6120031Z         "unit": {
2026-06-15T13:57:01.6120217Z           "complete": false,
2026-06-15T13:57:01.6120384Z           "evidence": []
2026-06-15T13:57:01.6120560Z         }
2026-06-15T13:57:01.6120728Z       }
2026-06-15T13:57:01.6120903Z     },
2026-06-15T13:57:01.6121071Z     {
2026-06-15T13:57:01.6121266Z       "id": "REQ-INSTALL-2",
2026-06-15T13:57:01.6121519Z       "title": "Marketplace-repackaging-friendly install",
2026-06-15T13:57:01.6121706Z       "requiredStages": [
2026-06-15T13:57:01.6121881Z         "doc"
2026-06-15T13:57:01.6122049Z       ],
2026-06-15T13:57:01.6122239Z       "stages": {
2026-06-15T13:57:01.6122401Z         "doc": {
2026-06-15T13:57:01.6122581Z           "complete": true,
2026-06-15T13:57:01.6122749Z           "evidence": [
2026-06-15T13:57:01.6122920Z             {
2026-06-15T13:57:01.6123106Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.6123283Z               "line": 695
2026-06-15T13:57:01.6123458Z             }
2026-06-15T13:57:01.6123617Z           ]
2026-06-15T13:57:01.6123792Z         },
2026-06-15T13:57:01.6123955Z         "impl": {
2026-06-15T13:57:01.6124145Z           "complete": false,
2026-06-15T13:57:01.6124335Z           "evidence": []
2026-06-15T13:57:01.6124503Z         },
2026-06-15T13:57:01.6124683Z         "int": {
2026-06-15T13:57:01.6129784Z           "complete": false,
2026-06-15T13:57:01.6130033Z           "evidence": []
2026-06-15T13:57:01.6130198Z         },
2026-06-15T13:57:01.6130374Z         "unit": {
2026-06-15T13:57:01.6130562Z           "complete": false,
2026-06-15T13:57:01.6130745Z           "evidence": []
2026-06-15T13:57:01.6130925Z         }
2026-06-15T13:57:01.6131088Z       }
2026-06-15T13:57:01.6131260Z     },
2026-06-15T13:57:01.6131421Z     {
2026-06-15T13:57:01.6131617Z       "id": "REQ-INSTALL-3",
2026-06-15T13:57:01.6131899Z       "title": "Idempotent + interactive-optional first run",
2026-06-15T13:57:01.6132089Z       "requiredStages": [
2026-06-15T13:57:01.6132271Z         "impl",
2026-06-15T13:57:01.6132436Z         "int"
2026-06-15T13:57:01.6132609Z       ],
2026-06-15T13:57:01.6132775Z       "stages": {
2026-06-15T13:57:01.6132947Z         "doc": {
2026-06-15T13:57:01.6133146Z           "complete": false,
2026-06-15T13:57:01.6133323Z           "evidence": []
2026-06-15T13:57:01.6133495Z         },
2026-06-15T13:57:01.6133671Z         "impl": {
2026-06-15T13:57:01.6133853Z           "complete": true,
2026-06-15T13:57:01.6134032Z           "evidence": [
2026-06-15T13:57:01.6134205Z             {
2026-06-15T13:57:01.6134424Z               "path": "installer/install.ps1",
2026-06-15T13:57:01.6134797Z               "line": 100
2026-06-15T13:57:01.6134972Z             },
2026-06-15T13:57:01.6135136Z             {
2026-06-15T13:57:01.6135343Z               "path": "installer/install.ps1",
2026-06-15T13:57:01.6135523Z               "line": 111
2026-06-15T13:57:01.6135693Z             },
2026-06-15T13:57:01.6135862Z             {
2026-06-15T13:57:01.6136056Z               "path": "installer/install.sh",
2026-06-15T13:57:01.6136232Z               "line": 79
2026-06-15T13:57:01.6136405Z             }
2026-06-15T13:57:01.6136585Z           ]
2026-06-15T13:57:01.6136749Z         },
2026-06-15T13:57:01.6137034Z         "int": {
2026-06-15T13:57:01.6137224Z           "complete": true,
2026-06-15T13:57:01.6137397Z           "evidence": [
2026-06-15T13:57:01.6137582Z             {
2026-06-15T13:57:01.6137830Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T13:57:01.6138003Z               "line": 167
2026-06-15T13:57:01.6138177Z             }
2026-06-15T13:57:01.6138344Z           ]
2026-06-15T13:57:01.6138518Z         },
2026-06-15T13:57:01.6138690Z         "unit": {
2026-06-15T13:57:01.6138875Z           "complete": false,
2026-06-15T13:57:01.6139142Z           "evidence": []
2026-06-15T13:57:01.6139362Z         }
2026-06-15T13:57:01.6139553Z       }
2026-06-15T13:57:01.6139720Z     },
2026-06-15T13:57:01.6139887Z     {
2026-06-15T13:57:01.6140063Z       "id": "REQ-INSTALL-4",
2026-06-15T13:57:01.6141223Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-15T13:57:01.6141408Z       "requiredStages": [
2026-06-15T13:57:01.6141591Z         "impl",
2026-06-15T13:57:01.6141771Z         "unit"
2026-06-15T13:57:01.6141929Z       ],
2026-06-15T13:57:01.6142120Z       "stages": {
2026-06-15T13:57:01.6142291Z         "doc": {
2026-06-15T13:57:01.6142478Z           "complete": false,
2026-06-15T13:57:01.6142658Z           "evidence": []
2026-06-15T13:57:01.6142840Z         },
2026-06-15T13:57:01.6143011Z         "impl": {
2026-06-15T13:57:01.6143202Z           "complete": true,
2026-06-15T13:57:01.6143379Z           "evidence": [
2026-06-15T13:57:01.6143540Z             {
2026-06-15T13:57:01.6143807Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:57:01.6143982Z               "line": 154
2026-06-15T13:57:01.6144150Z             },
2026-06-15T13:57:01.6144326Z             {
2026-06-15T13:57:01.6144555Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6144742Z               "line": 29
2026-06-15T13:57:01.6144912Z             },
2026-06-15T13:57:01.6145085Z             {
2026-06-15T13:57:01.6145314Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6145493Z               "line": 275
2026-06-15T13:57:01.6145667Z             },
2026-06-15T13:57:01.6145832Z             {
2026-06-15T13:57:01.6146065Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6146239Z               "line": 339
2026-06-15T13:57:01.6146417Z             },
2026-06-15T13:57:01.6146583Z             {
2026-06-15T13:57:01.6146821Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6146999Z               "line": 369
2026-06-15T13:57:01.6147169Z             },
2026-06-15T13:57:01.6147341Z             {
2026-06-15T13:57:01.6147571Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6147761Z               "line": 401
2026-06-15T13:57:01.6147929Z             },
2026-06-15T13:57:01.6148113Z             {
2026-06-15T13:57:01.6148319Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6148496Z               "line": 4843
2026-06-15T13:57:01.6148662Z             }
2026-06-15T13:57:01.6148823Z           ]
2026-06-15T13:57:01.6149063Z         },
2026-06-15T13:57:01.6149231Z         "int": {
2026-06-15T13:57:01.6149435Z           "complete": false,
2026-06-15T13:57:01.6149736Z           "evidence": []
2026-06-15T13:57:01.6149903Z         },
2026-06-15T13:57:01.6150079Z         "unit": {
2026-06-15T13:57:01.6150246Z           "complete": true,
2026-06-15T13:57:01.6150433Z           "evidence": [
2026-06-15T13:57:01.6150599Z             {
2026-06-15T13:57:01.6150857Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:57:01.6151038Z               "line": 335
2026-06-15T13:57:01.6151205Z             },
2026-06-15T13:57:01.6151370Z             {
2026-06-15T13:57:01.6151592Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6151883Z               "line": 763
2026-06-15T13:57:01.6152045Z             },
2026-06-15T13:57:01.6152217Z             {
2026-06-15T13:57:01.6152470Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6152651Z               "line": 804
2026-06-15T13:57:01.6152827Z             },
2026-06-15T13:57:01.6152990Z             {
2026-06-15T13:57:01.6153228Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6153414Z               "line": 824
2026-06-15T13:57:01.6153595Z             },
2026-06-15T13:57:01.6153757Z             {
2026-06-15T13:57:01.6153963Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6154143Z               "line": 6901
2026-06-15T13:57:01.6154305Z             }
2026-06-15T13:57:01.6154481Z           ]
2026-06-15T13:57:01.6154648Z         }
2026-06-15T13:57:01.6154819Z       }
2026-06-15T13:57:01.6154992Z     },
2026-06-15T13:57:01.6155158Z     {
2026-06-15T13:57:01.6155349Z       "id": "REQ-INSTALL-5",
2026-06-15T13:57:01.6156256Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-15T13:57:01.6156449Z       "requiredStages": [
2026-06-15T13:57:01.6156625Z         "impl",
2026-06-15T13:57:01.6156795Z         "int"
2026-06-15T13:57:01.6156968Z       ],
2026-06-15T13:57:01.6157147Z       "stages": {
2026-06-15T13:57:01.6157320Z         "doc": {
2026-06-15T13:57:01.6157501Z           "complete": false,
2026-06-15T13:57:01.6157682Z           "evidence": []
2026-06-15T13:57:01.6157854Z         },
2026-06-15T13:57:01.6158025Z         "impl": {
2026-06-15T13:57:01.6158212Z           "complete": true,
2026-06-15T13:57:01.6158382Z           "evidence": [
2026-06-15T13:57:01.6158555Z             {
2026-06-15T13:57:01.6158761Z               "path": "installer/install.ps1",
2026-06-15T13:57:01.6158935Z               "line": 5
2026-06-15T13:57:01.6159171Z             },
2026-06-15T13:57:01.6159354Z             {
2026-06-15T13:57:01.6159581Z               "path": "installer/install.sh",
2026-06-15T13:57:01.6159753Z               "line": 6
2026-06-15T13:57:01.6159933Z             }
2026-06-15T13:57:01.6160102Z           ]
2026-06-15T13:57:01.6160267Z         },
2026-06-15T13:57:01.6160445Z         "int": {
2026-06-15T13:57:01.6160625Z           "complete": true,
2026-06-15T13:57:01.6160806Z           "evidence": [
2026-06-15T13:57:01.6160978Z             {
2026-06-15T13:57:01.6161202Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T13:57:01.6161375Z               "line": 22
2026-06-15T13:57:01.6161550Z             }
2026-06-15T13:57:01.6161714Z           ]
2026-06-15T13:57:01.6161883Z         },
2026-06-15T13:57:01.6162045Z         "unit": {
2026-06-15T13:57:01.6162233Z           "complete": false,
2026-06-15T13:57:01.6162416Z           "evidence": []
2026-06-15T13:57:01.6162586Z         }
2026-06-15T13:57:01.6162763Z       }
2026-06-15T13:57:01.6162935Z     },
2026-06-15T13:57:01.6163101Z     {
2026-06-15T13:57:01.6163293Z       "id": "REQ-INSTALL-6",
2026-06-15T13:57:01.6165552Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-15T13:57:01.6165866Z       "requiredStages": [
2026-06-15T13:57:01.6166042Z         "impl",
2026-06-15T13:57:01.6166215Z         "unit"
2026-06-15T13:57:01.6166376Z       ],
2026-06-15T13:57:01.6166539Z       "stages": {
2026-06-15T13:57:01.6166715Z         "doc": {
2026-06-15T13:57:01.6166900Z           "complete": false,
2026-06-15T13:57:01.6167085Z           "evidence": []
2026-06-15T13:57:01.6167255Z         },
2026-06-15T13:57:01.6167422Z         "impl": {
2026-06-15T13:57:01.6167717Z           "complete": true,
2026-06-15T13:57:01.6167899Z           "evidence": [
2026-06-15T13:57:01.6168066Z             {
2026-06-15T13:57:01.6168289Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.6168471Z               "line": 59
2026-06-15T13:57:01.6168647Z             },
2026-06-15T13:57:01.6168814Z             {
2026-06-15T13:57:01.6169115Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.6169430Z               "line": 559
2026-06-15T13:57:01.6169592Z             },
2026-06-15T13:57:01.6169763Z             {
2026-06-15T13:57:01.6169996Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:57:01.6170169Z               "line": 191
2026-06-15T13:57:01.6170337Z             },
2026-06-15T13:57:01.6170512Z             {
2026-06-15T13:57:01.6170748Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:57:01.6170924Z               "line": 276
2026-06-15T13:57:01.6171091Z             },
2026-06-15T13:57:01.6171267Z             {
2026-06-15T13:57:01.6171476Z               "path": "crates/spt/src/main.rs",
2026-06-15T13:57:01.6171658Z               "line": 42
2026-06-15T13:57:01.6171829Z             },
2026-06-15T13:57:01.6171996Z             {
2026-06-15T13:57:01.6172207Z               "path": "installer/install.sh",
2026-06-15T13:57:01.6172381Z               "line": 104
2026-06-15T13:57:01.6172557Z             }
2026-06-15T13:57:01.6172736Z           ]
2026-06-15T13:57:01.6172904Z         },
2026-06-15T13:57:01.6173075Z         "int": {
2026-06-15T13:57:01.6173252Z           "complete": false,
2026-06-15T13:57:01.6173432Z           "evidence": []
2026-06-15T13:57:01.6173600Z         },
2026-06-15T13:57:01.6173766Z         "unit": {
2026-06-15T13:57:01.6173957Z           "complete": true,
2026-06-15T13:57:01.6174125Z           "evidence": [
2026-06-15T13:57:01.6174301Z             {
2026-06-15T13:57:01.6174525Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:57:01.6174706Z               "line": 866
2026-06-15T13:57:01.6174873Z             }
2026-06-15T13:57:01.6175045Z           ]
2026-06-15T13:57:01.6175211Z         }
2026-06-15T13:57:01.6175377Z       }
2026-06-15T13:57:01.6175544Z     },
2026-06-15T13:57:01.6175711Z     {
2026-06-15T13:57:01.6175906Z       "id": "REQ-INSTALL-7",
2026-06-15T13:57:01.6177853Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-15T13:57:01.6178054Z       "requiredStages": [
2026-06-15T13:57:01.6178229Z         "impl"
2026-06-15T13:57:01.6178393Z       ],
2026-06-15T13:57:01.6178612Z       "stages": {
2026-06-15T13:57:01.6178778Z         "doc": {
2026-06-15T13:57:01.6179036Z           "complete": false,
2026-06-15T13:57:01.6179251Z           "evidence": []
2026-06-15T13:57:01.6179427Z         },
2026-06-15T13:57:01.6179604Z         "impl": {
2026-06-15T13:57:01.6179789Z           "complete": true,
2026-06-15T13:57:01.6179971Z           "evidence": [
2026-06-15T13:57:01.6180137Z             {
2026-06-15T13:57:01.6180356Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6180537Z               "line": 3482
2026-06-15T13:57:01.6180811Z             },
2026-06-15T13:57:01.6180983Z             {
2026-06-15T13:57:01.6181188Z               "path": "installer/install.ps1",
2026-06-15T13:57:01.6181373Z               "line": 157
2026-06-15T13:57:01.6181532Z             }
2026-06-15T13:57:01.6181707Z           ]
2026-06-15T13:57:01.6181880Z         },
2026-06-15T13:57:01.6182045Z         "int": {
2026-06-15T13:57:01.6182232Z           "complete": false,
2026-06-15T13:57:01.6182413Z           "evidence": []
2026-06-15T13:57:01.6182585Z         },
2026-06-15T13:57:01.6182753Z         "unit": {
2026-06-15T13:57:01.6182927Z           "complete": false,
2026-06-15T13:57:01.6183249Z           "evidence": []
2026-06-15T13:57:01.6183411Z         }
2026-06-15T13:57:01.6183587Z       }
2026-06-15T13:57:01.6183745Z     },
2026-06-15T13:57:01.6183912Z     {
2026-06-15T13:57:01.6184099Z       "id": "REQ-INSTALL-8",
2026-06-15T13:57:01.6186043Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-15T13:57:01.6186247Z       "requiredStages": [
2026-06-15T13:57:01.6186420Z         "impl"
2026-06-15T13:57:01.6186596Z       ],
2026-06-15T13:57:01.6186767Z       "stages": {
2026-06-15T13:57:01.6186968Z         "doc": {
2026-06-15T13:57:01.6187153Z           "complete": false,
2026-06-15T13:57:01.6187335Z           "evidence": []
2026-06-15T13:57:01.6187506Z         },
2026-06-15T13:57:01.6187673Z         "impl": {
2026-06-15T13:57:01.6187859Z           "complete": true,
2026-06-15T13:57:01.6188039Z           "evidence": [
2026-06-15T13:57:01.6188205Z             {
2026-06-15T13:57:01.6188423Z               "path": "installer/install.ps1",
2026-06-15T13:57:01.6188600Z               "line": 184
2026-06-15T13:57:01.6188780Z             },
2026-06-15T13:57:01.6189014Z             {
2026-06-15T13:57:01.6189224Z               "path": "installer/install.sh",
2026-06-15T13:57:01.6189410Z               "line": 121
2026-06-15T13:57:01.6189591Z             }
2026-06-15T13:57:01.6189767Z           ]
2026-06-15T13:57:01.6189934Z         },
2026-06-15T13:57:01.6190111Z         "int": {
2026-06-15T13:57:01.6190292Z           "complete": false,
2026-06-15T13:57:01.6190475Z           "evidence": []
2026-06-15T13:57:01.6190635Z         },
2026-06-15T13:57:01.6190799Z         "unit": {
2026-06-15T13:57:01.6190987Z           "complete": false,
2026-06-15T13:57:01.6191168Z           "evidence": []
2026-06-15T13:57:01.6191342Z         }
2026-06-15T13:57:01.6191501Z       }
2026-06-15T13:57:01.6191666Z     },
2026-06-15T13:57:01.6191834Z     {
2026-06-15T13:57:01.6192020Z       "id": "REQ-KICK-1",
2026-06-15T13:57:01.6196411Z       "title": "Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the incumbent controller and becomes controller; the displaced controller receives a LOUD `Displaced{by}` notice and is FULLY DETACHED (not demoted to a viewer). A default attach to a controlled endpoint is NEVER a silent displace (it is the Control busy-refusal). An old (N-1) rc omits intent → Control, so it can drive a free endpoint but CANNOT `--take` — it can never silently steal, and gets a clean busy-refusal instead. Taking control rides the same access_check(endpoint, origin, Unsolicited) as a normal control attach (if you may drive, you may take — no elevated kick policy). The picker surfaces 'Kick <node> and attach' (Take) only on a controlled (blue ■) endpoint, via the existing attach dispatch (single-bringup-path: intent is a parameter).",
2026-06-15T13:57:01.6196612Z       "requiredStages": [
2026-06-15T13:57:01.6196788Z         "doc",
2026-06-15T13:57:01.6196965Z         "impl",
2026-06-15T13:57:01.6197131Z         "unit",
2026-06-15T13:57:01.6197309Z         "int"
2026-06-15T13:57:01.6197589Z       ],
2026-06-15T13:57:01.6197775Z       "stages": {
2026-06-15T13:57:01.6197942Z         "doc": {
2026-06-15T13:57:01.6198129Z           "complete": true,
2026-06-15T13:57:01.6198309Z           "evidence": [
2026-06-15T13:57:01.6198478Z             {
2026-06-15T13:57:01.6198676Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.6198856Z               "line": 322
2026-06-15T13:57:01.6199107Z             }
2026-06-15T13:57:01.6199279Z           ]
2026-06-15T13:57:01.6199489Z         },
2026-06-15T13:57:01.6199669Z         "impl": {
2026-06-15T13:57:01.6199851Z           "complete": true,
2026-06-15T13:57:01.6200151Z           "evidence": [
2026-06-15T13:57:01.6200327Z             {
2026-06-15T13:57:01.6200566Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:57:01.6200748Z               "line": 41
2026-06-15T13:57:01.6200919Z             },
2026-06-15T13:57:01.6201086Z             {
2026-06-15T13:57:01.6201287Z               "path": "crates/spt/src/rc.rs",
2026-06-15T13:57:01.6201476Z               "line": 181
2026-06-15T13:57:01.6201638Z             }
2026-06-15T13:57:01.6201817Z           ]
2026-06-15T13:57:01.6201979Z         },
2026-06-15T13:57:01.6202151Z         "int": {
2026-06-15T13:57:01.6202332Z           "complete": true,
2026-06-15T13:57:01.6202513Z           "evidence": [
2026-06-15T13:57:01.6202690Z             {
2026-06-15T13:57:01.6202928Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:57:01.6203114Z               "line": 789
2026-06-15T13:57:01.6203286Z             }
2026-06-15T13:57:01.6203457Z           ]
2026-06-15T13:57:01.6203639Z         },
2026-06-15T13:57:01.6203805Z         "unit": {
2026-06-15T13:57:01.6203987Z           "complete": true,
2026-06-15T13:57:01.6204161Z           "evidence": [
2026-06-15T13:57:01.6204332Z             {
2026-06-15T13:57:01.6204565Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:57:01.6204750Z               "line": 205
2026-06-15T13:57:01.6204923Z             }
2026-06-15T13:57:01.6205103Z           ]
2026-06-15T13:57:01.6205280Z         }
2026-06-15T13:57:01.6205437Z       }
2026-06-15T13:57:01.6205609Z     },
2026-06-15T13:57:01.6205776Z     {
2026-06-15T13:57:01.6205967Z       "id": "REQ-MANIFEST-1",
2026-06-15T13:57:01.6206325Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-15T13:57:01.6206511Z       "requiredStages": [
2026-06-15T13:57:01.6206682Z         "doc",
2026-06-15T13:57:01.6206854Z         "impl",
2026-06-15T13:57:01.6207029Z         "unit"
2026-06-15T13:57:01.6207207Z       ],
2026-06-15T13:57:01.6207386Z       "stages": {
2026-06-15T13:57:01.6207554Z         "doc": {
2026-06-15T13:57:01.6207745Z           "complete": true,
2026-06-15T13:57:01.6207930Z           "evidence": [
2026-06-15T13:57:01.6208103Z             {
2026-06-15T13:57:01.6208292Z               "path": "docs/MANIFEST.md",
2026-06-15T13:57:01.6208469Z               "line": 19
2026-06-15T13:57:01.6208641Z             }
2026-06-15T13:57:01.6208817Z           ]
2026-06-15T13:57:01.6209066Z         },
2026-06-15T13:57:01.6209250Z         "impl": {
2026-06-15T13:57:01.6209440Z           "complete": true,
2026-06-15T13:57:01.6209624Z           "evidence": [
2026-06-15T13:57:01.6209783Z             {
2026-06-15T13:57:01.6210016Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6210201Z               "line": 18
2026-06-15T13:57:01.6210359Z             }
2026-06-15T13:57:01.6210535Z           ]
2026-06-15T13:57:01.6210697Z         },
2026-06-15T13:57:01.6210873Z         "int": {
2026-06-15T13:57:01.6211054Z           "complete": false,
2026-06-15T13:57:01.6211237Z           "evidence": []
2026-06-15T13:57:01.6211412Z         },
2026-06-15T13:57:01.6211585Z         "unit": {
2026-06-15T13:57:01.6211770Z           "complete": true,
2026-06-15T13:57:01.6211953Z           "evidence": [
2026-06-15T13:57:01.6212117Z             {
2026-06-15T13:57:01.6212353Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6212650Z               "line": 869
2026-06-15T13:57:01.6212830Z             },
2026-06-15T13:57:01.6212997Z             {
2026-06-15T13:57:01.6213240Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6213421Z               "line": 947
2026-06-15T13:57:01.6213588Z             },
2026-06-15T13:57:01.6213745Z             {
2026-06-15T13:57:01.6213974Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6214162Z               "line": 959
2026-06-15T13:57:01.6214327Z             },
2026-06-15T13:57:01.6214495Z             {
2026-06-15T13:57:01.6214822Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6215005Z               "line": 970
2026-06-15T13:57:01.6215173Z             },
2026-06-15T13:57:01.6215343Z             {
2026-06-15T13:57:01.6215587Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6215769Z               "line": 987
2026-06-15T13:57:01.6215950Z             },
2026-06-15T13:57:01.6216126Z             {
2026-06-15T13:57:01.6216360Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6216551Z               "line": 1001
2026-06-15T13:57:01.6216719Z             },
2026-06-15T13:57:01.6216880Z             {
2026-06-15T13:57:01.6217104Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6217286Z               "line": 1117
2026-06-15T13:57:01.6217452Z             },
2026-06-15T13:57:01.6217632Z             {
2026-06-15T13:57:01.6217870Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6218053Z               "line": 1132
2026-06-15T13:57:01.6218227Z             },
2026-06-15T13:57:01.6218400Z             {
2026-06-15T13:57:01.6218643Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6218824Z               "line": 1243
2026-06-15T13:57:01.6219081Z             },
2026-06-15T13:57:01.6219264Z             {
2026-06-15T13:57:01.6219525Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6219720Z               "line": 1254
2026-06-15T13:57:01.6219882Z             }
2026-06-15T13:57:01.6220056Z           ]
2026-06-15T13:57:01.6220223Z         }
2026-06-15T13:57:01.6220394Z       }
2026-06-15T13:57:01.6220576Z     },
2026-06-15T13:57:01.6220732Z     {
2026-06-15T13:57:01.6220920Z       "id": "REQ-MANIFEST-2",
2026-06-15T13:57:01.6221821Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
2026-06-15T13:57:01.6222024Z       "requiredStages": [
2026-06-15T13:57:01.6222207Z         "doc",
2026-06-15T13:57:01.6222388Z         "impl",
2026-06-15T13:57:01.6222564Z         "unit"
2026-06-15T13:57:01.6222724Z       ],
2026-06-15T13:57:01.6222900Z       "stages": {
2026-06-15T13:57:01.6223076Z         "doc": {
2026-06-15T13:57:01.6223261Z           "complete": true,
2026-06-15T13:57:01.6223444Z           "evidence": [
2026-06-15T13:57:01.6223618Z             {
2026-06-15T13:57:01.6223824Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.6223991Z               "line": 75
2026-06-15T13:57:01.6224167Z             }
2026-06-15T13:57:01.6224339Z           ]
2026-06-15T13:57:01.6224515Z         },
2026-06-15T13:57:01.6224683Z         "impl": {
2026-06-15T13:57:01.6224868Z           "complete": true,
2026-06-15T13:57:01.6225046Z           "evidence": [
2026-06-15T13:57:01.6225220Z             {
2026-06-15T13:57:01.6225461Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6225633Z               "line": 62
2026-06-15T13:57:01.6225814Z             },
2026-06-15T13:57:01.6225976Z             {
2026-06-15T13:57:01.6226214Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6226381Z               "line": 15
2026-06-15T13:57:01.6226543Z             },
2026-06-15T13:57:01.6226706Z             {
2026-06-15T13:57:01.6226930Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6227116Z               "line": 65
2026-06-15T13:57:01.6227401Z             },
2026-06-15T13:57:01.6227570Z             {
2026-06-15T13:57:01.6227816Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6227998Z               "line": 83
2026-06-15T13:57:01.6228178Z             },
2026-06-15T13:57:01.6228341Z             {
2026-06-15T13:57:01.6228569Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6228754Z               "line": 183
2026-06-15T13:57:01.6228918Z             },
2026-06-15T13:57:01.6229170Z             {
2026-06-15T13:57:01.6229761Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6229937Z               "line": 482
2026-06-15T13:57:01.6230100Z             },
2026-06-15T13:57:01.6230276Z             {
2026-06-15T13:57:01.6230508Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6230682Z               "line": 508
2026-06-15T13:57:01.6230859Z             },
2026-06-15T13:57:01.6231021Z             {
2026-06-15T13:57:01.6231260Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6231441Z               "line": 626
2026-06-15T13:57:01.6231617Z             },
2026-06-15T13:57:01.6231785Z             {
2026-06-15T13:57:01.6232013Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6232194Z               "line": 651
2026-06-15T13:57:01.6232357Z             },
2026-06-15T13:57:01.6232522Z             {
2026-06-15T13:57:01.6232748Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6232923Z               "line": 674
2026-06-15T13:57:01.6233101Z             },
2026-06-15T13:57:01.6233266Z             {
2026-06-15T13:57:01.6233493Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6233674Z               "line": 689
2026-06-15T13:57:01.6233845Z             },
2026-06-15T13:57:01.6234018Z             {
2026-06-15T13:57:01.6234226Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6234413Z               "line": 4993
2026-06-15T13:57:01.6234580Z             },
2026-06-15T13:57:01.6234761Z             {
2026-06-15T13:57:01.6234962Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6235142Z               "line": 5007
2026-06-15T13:57:01.6235310Z             },
2026-06-15T13:57:01.6235481Z             {
2026-06-15T13:57:01.6235690Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6235871Z               "line": 5041
2026-06-15T13:57:01.6236045Z             }
2026-06-15T13:57:01.6236216Z           ]
2026-06-15T13:57:01.6236388Z         },
2026-06-15T13:57:01.6236570Z         "int": {
2026-06-15T13:57:01.6236755Z           "complete": false,
2026-06-15T13:57:01.6236937Z           "evidence": []
2026-06-15T13:57:01.6237108Z         },
2026-06-15T13:57:01.6237275Z         "unit": {
2026-06-15T13:57:01.6237461Z           "complete": true,
2026-06-15T13:57:01.6237647Z           "evidence": [
2026-06-15T13:57:01.6237820Z             {
2026-06-15T13:57:01.6238057Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.6238243Z               "line": 920
2026-06-15T13:57:01.6238411Z             },
2026-06-15T13:57:01.6238586Z             {
2026-06-15T13:57:01.6238805Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6239067Z               "line": 211
2026-06-15T13:57:01.6239244Z             },
2026-06-15T13:57:01.6239435Z             {
2026-06-15T13:57:01.6239667Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6239840Z               "line": 272
2026-06-15T13:57:01.6240021Z             },
2026-06-15T13:57:01.6240197Z             {
2026-06-15T13:57:01.6240422Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6240607Z               "line": 313
2026-06-15T13:57:01.6240774Z             },
2026-06-15T13:57:01.6240945Z             {
2026-06-15T13:57:01.6241167Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6241353Z               "line": 325
2026-06-15T13:57:01.6241619Z             },
2026-06-15T13:57:01.6241791Z             {
2026-06-15T13:57:01.6242016Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6242191Z               "line": 336
2026-06-15T13:57:01.6242354Z             },
2026-06-15T13:57:01.6242529Z             {
2026-06-15T13:57:01.6242759Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6242937Z               "line": 345
2026-06-15T13:57:01.6243102Z             },
2026-06-15T13:57:01.6243275Z             {
2026-06-15T13:57:01.6243498Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6243807Z               "line": 361
2026-06-15T13:57:01.6243964Z             },
2026-06-15T13:57:01.6244138Z             {
2026-06-15T13:57:01.6244358Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6244539Z               "line": 444
2026-06-15T13:57:01.6244715Z             },
2026-06-15T13:57:01.6244873Z             {
2026-06-15T13:57:01.6245111Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6245288Z               "line": 877
2026-06-15T13:57:01.6245459Z             },
2026-06-15T13:57:01.6245616Z             {
2026-06-15T13:57:01.6245846Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6246031Z               "line": 901
2026-06-15T13:57:01.6246199Z             },
2026-06-15T13:57:01.6246378Z             {
2026-06-15T13:57:01.6246605Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6246786Z               "line": 927
2026-06-15T13:57:01.6246962Z             },
2026-06-15T13:57:01.6247135Z             {
2026-06-15T13:57:01.6247382Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6247559Z               "line": 946
2026-06-15T13:57:01.6247736Z             },
2026-06-15T13:57:01.6247907Z             {
2026-06-15T13:57:01.6248141Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6248317Z               "line": 977
2026-06-15T13:57:01.6248474Z             },
2026-06-15T13:57:01.6248646Z             {
2026-06-15T13:57:01.6248879Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:57:01.6249193Z               "line": 309
2026-06-15T13:57:01.6249413Z             },
2026-06-15T13:57:01.6249579Z             {
2026-06-15T13:57:01.6249790Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:57:01.6249966Z               "line": 486
2026-06-15T13:57:01.6250133Z             },
2026-06-15T13:57:01.6250295Z             {
2026-06-15T13:57:01.6250514Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6250691Z               "line": 7088
2026-06-15T13:57:01.6250871Z             },
2026-06-15T13:57:01.6251053Z             {
2026-06-15T13:57:01.6251254Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6251434Z               "line": 7972
2026-06-15T13:57:01.6251600Z             }
2026-06-15T13:57:01.6251760Z           ]
2026-06-15T13:57:01.6251932Z         }
2026-06-15T13:57:01.6252112Z       }
2026-06-15T13:57:01.6252285Z     },
2026-06-15T13:57:01.6252446Z     {
2026-06-15T13:57:01.6252633Z       "id": "REQ-MANIFEST-3",
2026-06-15T13:57:01.6253705Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
2026-06-15T13:57:01.6253897Z       "requiredStages": [
2026-06-15T13:57:01.6254063Z         "doc",
2026-06-15T13:57:01.6254240Z         "impl",
2026-06-15T13:57:01.6254419Z         "unit"
2026-06-15T13:57:01.6254580Z       ],
2026-06-15T13:57:01.6254765Z       "stages": {
2026-06-15T13:57:01.6254932Z         "doc": {
2026-06-15T13:57:01.6255119Z           "complete": true,
2026-06-15T13:57:01.6255299Z           "evidence": [
2026-06-15T13:57:01.6255477Z             {
2026-06-15T13:57:01.6255666Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.6255843Z               "line": 81
2026-06-15T13:57:01.6256139Z             }
2026-06-15T13:57:01.6256310Z           ]
2026-06-15T13:57:01.6256482Z         },
2026-06-15T13:57:01.6256659Z         "impl": {
2026-06-15T13:57:01.6256844Z           "complete": true,
2026-06-15T13:57:01.6257024Z           "evidence": [
2026-06-15T13:57:01.6257194Z             {
2026-06-15T13:57:01.6257433Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6257608Z               "line": 72
2026-06-15T13:57:01.6257786Z             },
2026-06-15T13:57:01.6257947Z             {
2026-06-15T13:57:01.6258287Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6258472Z               "line": 101
2026-06-15T13:57:01.6258635Z             },
2026-06-15T13:57:01.6258815Z             {
2026-06-15T13:57:01.6259120Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6259308Z               "line": 132
2026-06-15T13:57:01.6259468Z             },
2026-06-15T13:57:01.6259646Z             {
2026-06-15T13:57:01.6259882Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6260058Z               "line": 532
2026-06-15T13:57:01.6260225Z             },
2026-06-15T13:57:01.6260387Z             {
2026-06-15T13:57:01.6260626Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6260792Z               "line": 588
2026-06-15T13:57:01.6260965Z             },
2026-06-15T13:57:01.6261141Z             {
2026-06-15T13:57:01.6261341Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6261524Z               "line": 5054
2026-06-15T13:57:01.6261703Z             },
2026-06-15T13:57:01.6261876Z             {
2026-06-15T13:57:01.6262079Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6262259Z               "line": 5080
2026-06-15T13:57:01.6262439Z             }
2026-06-15T13:57:01.6262596Z           ]
2026-06-15T13:57:01.6262763Z         },
2026-06-15T13:57:01.6262935Z         "int": {
2026-06-15T13:57:01.6263122Z           "complete": false,
2026-06-15T13:57:01.6263302Z           "evidence": []
2026-06-15T13:57:01.6263470Z         },
2026-06-15T13:57:01.6263650Z         "unit": {
2026-06-15T13:57:01.6263836Z           "complete": true,
2026-06-15T13:57:01.6264018Z           "evidence": [
2026-06-15T13:57:01.6264194Z             {
2026-06-15T13:57:01.6264414Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6264590Z               "line": 371
2026-06-15T13:57:01.6264767Z             },
2026-06-15T13:57:01.6268360Z             {
2026-06-15T13:57:01.6268670Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6268899Z               "line": 429
2026-06-15T13:57:01.6269200Z             },
2026-06-15T13:57:01.6269384Z             {
2026-06-15T13:57:01.6269628Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6269815Z               "line": 1001
2026-06-15T13:57:01.6269995Z             },
2026-06-15T13:57:01.6270163Z             {
2026-06-15T13:57:01.6270380Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6270553Z               "line": 7143
2026-06-15T13:57:01.6270732Z             }
2026-06-15T13:57:01.6270906Z           ]
2026-06-15T13:57:01.6271067Z         }
2026-06-15T13:57:01.6271235Z       }
2026-06-15T13:57:01.6271401Z     },
2026-06-15T13:57:01.6271558Z     {
2026-06-15T13:57:01.6271740Z       "id": "REQ-MANIFEST-4",
2026-06-15T13:57:01.6272951Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
2026-06-15T13:57:01.6273152Z       "requiredStages": [
2026-06-15T13:57:01.6273309Z         "doc",
2026-06-15T13:57:01.6273477Z         "impl",
2026-06-15T13:57:01.6273639Z         "unit"
2026-06-15T13:57:01.6273801Z       ],
2026-06-15T13:57:01.6273968Z       "stages": {
2026-06-15T13:57:01.6274148Z         "doc": {
2026-06-15T13:57:01.6274482Z           "complete": true,
2026-06-15T13:57:01.6274660Z           "evidence": [
2026-06-15T13:57:01.6274835Z             {
2026-06-15T13:57:01.6275026Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.6275193Z               "line": 88
2026-06-15T13:57:01.6275350Z             }
2026-06-15T13:57:01.6275520Z           ]
2026-06-15T13:57:01.6275691Z         },
2026-06-15T13:57:01.6275852Z         "impl": {
2026-06-15T13:57:01.6276029Z           "complete": true,
2026-06-15T13:57:01.6276205Z           "evidence": [
2026-06-15T13:57:01.6276367Z             {
2026-06-15T13:57:01.6276720Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6276888Z               "line": 80
2026-06-15T13:57:01.6277063Z             },
2026-06-15T13:57:01.6277226Z             {
2026-06-15T13:57:01.6277469Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6277650Z               "line": 152
2026-06-15T13:57:01.6277823Z             },
2026-06-15T13:57:01.6277983Z             {
2026-06-15T13:57:01.6278216Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.6278385Z               "line": 83
2026-06-15T13:57:01.6278553Z             },
2026-06-15T13:57:01.6278719Z             {
2026-06-15T13:57:01.6279029Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.6279206Z               "line": 505
2026-06-15T13:57:01.6279382Z             },
2026-06-15T13:57:01.6279553Z             {
2026-06-15T13:57:01.6279784Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.6279949Z               "line": 530
2026-06-15T13:57:01.6280127Z             }
2026-06-15T13:57:01.6280297Z           ]
2026-06-15T13:57:01.6280460Z         },
2026-06-15T13:57:01.6280627Z         "int": {
2026-06-15T13:57:01.6280817Z           "complete": false,
2026-06-15T13:57:01.6280997Z           "evidence": []
2026-06-15T13:57:01.6281160Z         },
2026-06-15T13:57:01.6281337Z         "unit": {
2026-06-15T13:57:01.6281531Z           "complete": true,
2026-06-15T13:57:01.6281790Z           "evidence": [
2026-06-15T13:57:01.6281961Z             {
2026-06-15T13:57:01.6282198Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6282381Z               "line": 1067
2026-06-15T13:57:01.6282547Z             },
2026-06-15T13:57:01.6282729Z             {
2026-06-15T13:57:01.6282954Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6283133Z               "line": 1100
2026-06-15T13:57:01.6283304Z             },
2026-06-15T13:57:01.6283464Z             {
2026-06-15T13:57:01.6283699Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.6283884Z               "line": 862
2026-06-15T13:57:01.6284056Z             }
2026-06-15T13:57:01.6284213Z           ]
2026-06-15T13:57:01.6284384Z         }
2026-06-15T13:57:01.6284543Z       }
2026-06-15T13:57:01.6284709Z     },
2026-06-15T13:57:01.6284872Z     {
2026-06-15T13:57:01.6285047Z       "id": "REQ-MANIFEST-5",
2026-06-15T13:57:01.6289776Z       "title": "File-backed adapter [strings] (M12-W3-T3.1): a [strings] dot-path value MAY be an inline-table FILE POINTER `key = { file = \"rel/path\" }` resolved to the file's contents at get-string time, keeping large bodies (skill-instructions, hint text) out of the manifest. A value-position table with a `file` key IS the pointer form (reserved — cannot double as data). Per-adapter aux storage `adapters/<adapter>/strings/`; pointers resolve relative to it with CONTAINMENT (reject `..`/absolute escaping the dir). UPDATE-SAFETY: a LOCAL profile's file-pointers resolve relative to the user-owned local-profile dir (NOT adapter-shipped strings/, which adapter updates overwrite), or the local profile inlines. Validate-at-register (fail-fast on a bad/escaping/missing pointer) + LAZY read at get-string (live file edits reflect, no re-register) + skip-diagnostics on missing-at-read (no hard-crash, mirrors [digest]). Rides the same leaf-replace profile overlay as the rest of [strings].",
2026-06-15T13:57:01.6290100Z       "requiredStages": [
2026-06-15T13:57:01.6290276Z         "doc",
2026-06-15T13:57:01.6290453Z         "impl",
2026-06-15T13:57:01.6290630Z         "unit"
2026-06-15T13:57:01.6290786Z       ],
2026-06-15T13:57:01.6290964Z       "stages": {
2026-06-15T13:57:01.6291144Z         "doc": {
2026-06-15T13:57:01.6291331Z           "complete": true,
2026-06-15T13:57:01.6291505Z           "evidence": [
2026-06-15T13:57:01.6291683Z             {
2026-06-15T13:57:01.6291877Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.6292045Z               "line": 83
2026-06-15T13:57:01.6292330Z             }
2026-06-15T13:57:01.6292492Z           ]
2026-06-15T13:57:01.6292668Z         },
2026-06-15T13:57:01.6292831Z         "impl": {
2026-06-15T13:57:01.6293017Z           "complete": true,
2026-06-15T13:57:01.6293194Z           "evidence": [
2026-06-15T13:57:01.6293355Z             {
2026-06-15T13:57:01.6293590Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6293773Z               "line": 120
2026-06-15T13:57:01.6293944Z             }
2026-06-15T13:57:01.6294115Z           ]
2026-06-15T13:57:01.6294296Z         },
2026-06-15T13:57:01.6294463Z         "int": {
2026-06-15T13:57:01.6294653Z           "complete": false,
2026-06-15T13:57:01.6294831Z           "evidence": []
2026-06-15T13:57:01.6294987Z         },
2026-06-15T13:57:01.6295165Z         "unit": {
2026-06-15T13:57:01.6295345Z           "complete": true,
2026-06-15T13:57:01.6295526Z           "evidence": [
2026-06-15T13:57:01.6295693Z             {
2026-06-15T13:57:01.6295927Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:57:01.6296104Z               "line": 404
2026-06-15T13:57:01.6296270Z             },
2026-06-15T13:57:01.6296443Z             {
2026-06-15T13:57:01.6296660Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6296844Z               "line": 1074
2026-06-15T13:57:01.6297011Z             },
2026-06-15T13:57:01.6297182Z             {
2026-06-15T13:57:01.6297407Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6297578Z               "line": 1103
2026-06-15T13:57:01.6297750Z             },
2026-06-15T13:57:01.6297926Z             {
2026-06-15T13:57:01.6298159Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6298342Z               "line": 1143
2026-06-15T13:57:01.6298503Z             },
2026-06-15T13:57:01.6298667Z             {
2026-06-15T13:57:01.6298895Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6299160Z               "line": 1158
2026-06-15T13:57:01.6299336Z             }
2026-06-15T13:57:01.6299500Z           ]
2026-06-15T13:57:01.6299669Z         }
2026-06-15T13:57:01.6299834Z       }
2026-06-15T13:57:01.6300007Z     },
2026-06-15T13:57:01.6300163Z     {
2026-06-15T13:57:01.6300350Z       "id": "REQ-MANIFEST-6",
2026-06-15T13:57:01.6303736Z       "title": "Cross-adapter fallback target addressing (M12-W3-T3.2): a cross-adapter fallback target is addressed as `<adapter>:<profile>` (not just a bare adapter_name), resolved through the one composite-addressing resolver (registry::resolve_option) at every adapter-option read site so a fallback may select a shipped/local profile (e.g. a `ccs` profile). CONTEXT.md §cross-adapter-fallback reconciled (\"ccs is a profile; cross-adapter fallback may target <adapter>:<profile>\"). Contract-only this milestone: the node-wide fallback SETTING + its rate-limit invocation are deferred to the consuming milestone (the runtime path does not exist yet); this REQ guarantees the ADDRESSING resolves.",
2026-06-15T13:57:01.6303939Z       "requiredStages": [
2026-06-15T13:57:01.6304107Z         "doc",
2026-06-15T13:57:01.6304282Z         "unit"
2026-06-15T13:57:01.6304444Z       ],
2026-06-15T13:57:01.6304617Z       "stages": {
2026-06-15T13:57:01.6304780Z         "doc": {
2026-06-15T13:57:01.6304961Z           "complete": true,
2026-06-15T13:57:01.6305138Z           "evidence": [
2026-06-15T13:57:01.6305314Z             {
2026-06-15T13:57:01.6305644Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.6305829Z               "line": 139
2026-06-15T13:57:01.6306011Z             }
2026-06-15T13:57:01.6306177Z           ]
2026-06-15T13:57:01.6306350Z         },
2026-06-15T13:57:01.6306529Z         "impl": {
2026-06-15T13:57:01.6306716Z           "complete": false,
2026-06-15T13:57:01.6306893Z           "evidence": []
2026-06-15T13:57:01.6307064Z         },
2026-06-15T13:57:01.6307244Z         "int": {
2026-06-15T13:57:01.6307423Z           "complete": false,
2026-06-15T13:57:01.6307604Z           "evidence": []
2026-06-15T13:57:01.6307958Z         },
2026-06-15T13:57:01.6308234Z         "unit": {
2026-06-15T13:57:01.6308424Z           "complete": true,
2026-06-15T13:57:01.6308602Z           "evidence": [
2026-06-15T13:57:01.6308777Z             {
2026-06-15T13:57:01.6309135Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:57:01.6309334Z               "line": 1180
2026-06-15T13:57:01.6309503Z             }
2026-06-15T13:57:01.6309682Z           ]
2026-06-15T13:57:01.6309859Z         }
2026-06-15T13:57:01.6310028Z       }
2026-06-15T13:57:01.6310205Z     },
2026-06-15T13:57:01.6310366Z     {
2026-06-15T13:57:01.6310562Z       "id": "REQ-MANIFEST-7",
2026-06-15T13:57:01.6315307Z       "title": "Adapter-declared shortcut basename (M12-W2 follow-on): an optional `[adapter] shortcut_basename` manifest field names the basename the `spt endpoint run` picker bakes into the generated `<basename>-<id>` launcher shortcut (REQ-RUN-SHORTCUT). Absent ⇒ the harness-agnostic default `spt` (→ `spt-<id>`); an adapter sets it to brand its shortcuts (claude-spt → `cc` → `cc-<id>`), so the Claude-Code-ness lives in the PUBLISHED adapter manifest, never hardcoded in spt-core. The picker reads it from the RESOLVED manifest of the selected adapter (registry::resolve_option), falling back to `spt` when absent/empty/unresolvable. Additive + N-1-safe (serde-default Option, omitted from serialization when absent; old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). Documented in docs/MANIFEST.md `[adapter]` section + the claude-spt worked example — the adapter-author contract perri builds spt-claude-code against.",
2026-06-15T13:57:01.6315526Z       "requiredStages": [
2026-06-15T13:57:01.6315688Z         "doc",
2026-06-15T13:57:01.6315869Z         "impl",
2026-06-15T13:57:01.6316037Z         "unit"
2026-06-15T13:57:01.6316199Z       ],
2026-06-15T13:57:01.6316384Z       "stages": {
2026-06-15T13:57:01.6316552Z         "doc": {
2026-06-15T13:57:01.6316737Z           "complete": true,
2026-06-15T13:57:01.6316915Z           "evidence": [
2026-06-15T13:57:01.6317114Z             {
2026-06-15T13:57:01.6317448Z               "path": "docs/MANIFEST.md",
2026-06-15T13:57:01.6317809Z               "line": 34
2026-06-15T13:57:01.6318122Z             }
2026-06-15T13:57:01.6318293Z           ]
2026-06-15T13:57:01.6318460Z         },
2026-06-15T13:57:01.6318632Z         "impl": {
2026-06-15T13:57:01.6318818Z           "complete": true,
2026-06-15T13:57:01.6319070Z           "evidence": [
2026-06-15T13:57:01.6319247Z             {
2026-06-15T13:57:01.6319462Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T13:57:01.6319637Z               "line": 54
2026-06-15T13:57:01.6319811Z             }
2026-06-15T13:57:01.6319976Z           ]
2026-06-15T13:57:01.6320139Z         },
2026-06-15T13:57:01.6320309Z         "int": {
2026-06-15T13:57:01.6320498Z           "complete": false,
2026-06-15T13:57:01.6320679Z           "evidence": []
2026-06-15T13:57:01.6320846Z         },
2026-06-15T13:57:01.6321027Z         "unit": {
2026-06-15T13:57:01.6321193Z           "complete": true,
2026-06-15T13:57:01.6321371Z           "evidence": [
2026-06-15T13:57:01.6321541Z             {
2026-06-15T13:57:01.6321780Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6321962Z               "line": 1260
2026-06-15T13:57:01.6322129Z             }
2026-06-15T13:57:01.6322296Z           ]
2026-06-15T13:57:01.6322587Z         }
2026-06-15T13:57:01.6322757Z       }
2026-06-15T13:57:01.6322935Z     },
2026-06-15T13:57:01.6323105Z     {
2026-06-15T13:57:01.6323281Z       "id": "REQ-MESH-1",
2026-06-15T13:57:01.6326715Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-15T13:57:01.6327020Z       "requiredStages": [
2026-06-15T13:57:01.6327202Z         "impl",
2026-06-15T13:57:01.6327374Z         "unit",
2026-06-15T13:57:01.6327545Z         "int"
2026-06-15T13:57:01.6327703Z       ],
2026-06-15T13:57:01.6327874Z       "stages": {
2026-06-15T13:57:01.6328042Z         "doc": {
2026-06-15T13:57:01.6328227Z           "complete": false,
2026-06-15T13:57:01.6328407Z           "evidence": []
2026-06-15T13:57:01.6328572Z         },
2026-06-15T13:57:01.6328749Z         "impl": {
2026-06-15T13:57:01.6328929Z           "complete": true,
2026-06-15T13:57:01.6329201Z           "evidence": [
2026-06-15T13:57:01.6329374Z             {
2026-06-15T13:57:01.6329621Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.6329802Z               "line": 771
2026-06-15T13:57:01.6329975Z             },
2026-06-15T13:57:01.6330150Z             {
2026-06-15T13:57:01.6330389Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6330570Z               "line": 38
2026-06-15T13:57:01.6330737Z             },
2026-06-15T13:57:01.6330907Z             {
2026-06-15T13:57:01.6331148Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6331325Z               "line": 161
2026-06-15T13:57:01.6331496Z             },
2026-06-15T13:57:01.6331663Z             {
2026-06-15T13:57:01.6331907Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6332083Z               "line": 206
2026-06-15T13:57:01.6332255Z             },
2026-06-15T13:57:01.6332425Z             {
2026-06-15T13:57:01.6332655Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6332832Z               "line": 57
2026-06-15T13:57:01.6333012Z             },
2026-06-15T13:57:01.6333185Z             {
2026-06-15T13:57:01.6333428Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:57:01.6333613Z               "line": 24
2026-06-15T13:57:01.6333779Z             },
2026-06-15T13:57:01.6333938Z             {
2026-06-15T13:57:01.6334185Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:57:01.6334365Z               "line": 142
2026-06-15T13:57:01.6334537Z             },
2026-06-15T13:57:01.6334704Z             {
2026-06-15T13:57:01.6334957Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:57:01.6335130Z               "line": 162
2026-06-15T13:57:01.6335300Z             }
2026-06-15T13:57:01.6335473Z           ]
2026-06-15T13:57:01.6335639Z         },
2026-06-15T13:57:01.6335811Z         "int": {
2026-06-15T13:57:01.6335995Z           "complete": true,
2026-06-15T13:57:01.6336166Z           "evidence": [
2026-06-15T13:57:01.6336346Z             {
2026-06-15T13:57:01.6336589Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T13:57:01.6336771Z               "line": 67
2026-06-15T13:57:01.6336941Z             },
2026-06-15T13:57:01.6337114Z             {
2026-06-15T13:57:01.6337353Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T13:57:01.6337533Z               "line": 93
2026-06-15T13:57:01.6337824Z             },
2026-06-15T13:57:01.6337997Z             {
2026-06-15T13:57:01.6338239Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T13:57:01.6338410Z               "line": 117
2026-06-15T13:57:01.6338579Z             },
2026-06-15T13:57:01.6338749Z             {
2026-06-15T13:57:01.6339165Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T13:57:01.6339352Z               "line": 134
2026-06-15T13:57:01.6339508Z             }
2026-06-15T13:57:01.6339681Z           ]
2026-06-15T13:57:01.6339842Z         },
2026-06-15T13:57:01.6340133Z         "unit": {
2026-06-15T13:57:01.6340310Z           "complete": true,
2026-06-15T13:57:01.6340486Z           "evidence": [
2026-06-15T13:57:01.6340653Z             {
2026-06-15T13:57:01.6340878Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6341059Z               "line": 427
2026-06-15T13:57:01.6341226Z             },
2026-06-15T13:57:01.6341386Z             {
2026-06-15T13:57:01.6341647Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:57:01.6341828Z               "line": 376
2026-06-15T13:57:01.6342004Z             },
2026-06-15T13:57:01.6342162Z             {
2026-06-15T13:57:01.6342409Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:57:01.6342591Z               "line": 412
2026-06-15T13:57:01.6342768Z             },
2026-06-15T13:57:01.6342939Z             {
2026-06-15T13:57:01.6343177Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:57:01.6343363Z               "line": 427
2026-06-15T13:57:01.6343530Z             },
2026-06-15T13:57:01.6343697Z             {
2026-06-15T13:57:01.6343940Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:57:01.6344122Z               "line": 438
2026-06-15T13:57:01.6344296Z             },
2026-06-15T13:57:01.6344459Z             {
2026-06-15T13:57:01.6344711Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:57:01.6344887Z               "line": 449
2026-06-15T13:57:01.6345056Z             },
2026-06-15T13:57:01.6345226Z             {
2026-06-15T13:57:01.6345469Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:57:01.6345647Z               "line": 460
2026-06-15T13:57:01.6345823Z             },
2026-06-15T13:57:01.6346000Z             {
2026-06-15T13:57:01.6346237Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:57:01.6346418Z               "line": 496
2026-06-15T13:57:01.6346579Z             },
2026-06-15T13:57:01.6346763Z             {
2026-06-15T13:57:01.6347002Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:57:01.6347178Z               "line": 519
2026-06-15T13:57:01.6347359Z             },
2026-06-15T13:57:01.6347520Z             {
2026-06-15T13:57:01.6347769Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:57:01.6347956Z               "line": 546
2026-06-15T13:57:01.6348122Z             }
2026-06-15T13:57:01.6348294Z           ]
2026-06-15T13:57:01.6348456Z         }
2026-06-15T13:57:01.6348623Z       }
2026-06-15T13:57:01.6348785Z     },
2026-06-15T13:57:01.6349037Z     {
2026-06-15T13:57:01.6349216Z       "id": "REQ-MESH-2",
2026-06-15T13:57:01.6353399Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-15T13:57:01.6353719Z       "requiredStages": [
2026-06-15T13:57:01.6353889Z         "impl",
2026-06-15T13:57:01.6354052Z         "unit",
2026-06-15T13:57:01.6354218Z         "int"
2026-06-15T13:57:01.6354381Z       ],
2026-06-15T13:57:01.6354563Z       "stages": {
2026-06-15T13:57:01.6354724Z         "doc": {
2026-06-15T13:57:01.6354904Z           "complete": false,
2026-06-15T13:57:01.6355091Z           "evidence": []
2026-06-15T13:57:01.6355362Z         },
2026-06-15T13:57:01.6355543Z         "impl": {
2026-06-15T13:57:01.6355721Z           "complete": true,
2026-06-15T13:57:01.6355902Z           "evidence": [
2026-06-15T13:57:01.6356068Z             {
2026-06-15T13:57:01.6356307Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.6356497Z               "line": 660
2026-06-15T13:57:01.6356668Z             },
2026-06-15T13:57:01.6356841Z             {
2026-06-15T13:57:01.6357078Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.6357259Z               "line": 118
2026-06-15T13:57:01.6357418Z             },
2026-06-15T13:57:01.6357581Z             {
2026-06-15T13:57:01.6357814Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.6357986Z               "line": 347
2026-06-15T13:57:01.6358163Z             },
2026-06-15T13:57:01.6358324Z             {
2026-06-15T13:57:01.6358568Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.6358749Z               "line": 389
2026-06-15T13:57:01.6358911Z             },
2026-06-15T13:57:01.6359155Z             {
2026-06-15T13:57:01.6359389Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.6359568Z               "line": 403
2026-06-15T13:57:01.6359737Z             },
2026-06-15T13:57:01.6359911Z             {
2026-06-15T13:57:01.6360135Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.6360323Z               "line": 492
2026-06-15T13:57:01.6360496Z             },
2026-06-15T13:57:01.6360657Z             {
2026-06-15T13:57:01.6360886Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.6361059Z               "line": 507
2026-06-15T13:57:01.6361229Z             },
2026-06-15T13:57:01.6361407Z             {
2026-06-15T13:57:01.6361621Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.6361797Z               "line": 534
2026-06-15T13:57:01.6361960Z             },
2026-06-15T13:57:01.6362140Z             {
2026-06-15T13:57:01.6362380Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6362563Z               "line": 207
2026-06-15T13:57:01.6362739Z             },
2026-06-15T13:57:01.6362914Z             {
2026-06-15T13:57:01.6363148Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6363316Z               "line": 755
2026-06-15T13:57:01.6363486Z             },
2026-06-15T13:57:01.6363659Z             {
2026-06-15T13:57:01.6363898Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6364078Z               "line": 816
2026-06-15T13:57:01.6364250Z             },
2026-06-15T13:57:01.6364426Z             {
2026-06-15T13:57:01.6364655Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6364837Z               "line": 869
2026-06-15T13:57:01.6365012Z             },
2026-06-15T13:57:01.6365186Z             {
2026-06-15T13:57:01.6365426Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6365613Z               "line": 891
2026-06-15T13:57:01.6365788Z             },
2026-06-15T13:57:01.6365956Z             {
2026-06-15T13:57:01.6366180Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.6366346Z               "line": 122
2026-06-15T13:57:01.6366523Z             },
2026-06-15T13:57:01.6366689Z             {
2026-06-15T13:57:01.6366914Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6367229Z               "line": 44
2026-06-15T13:57:01.6367396Z             },
2026-06-15T13:57:01.6367571Z             {
2026-06-15T13:57:01.6367795Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6367978Z               "line": 184
2026-06-15T13:57:01.6368156Z             },
2026-06-15T13:57:01.6368326Z             {
2026-06-15T13:57:01.6368546Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6368723Z               "line": 211
2026-06-15T13:57:01.6368889Z             },
2026-06-15T13:57:01.6369256Z             {
2026-06-15T13:57:01.6369476Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6369653Z               "line": 251
2026-06-15T13:57:01.6369824Z             },
2026-06-15T13:57:01.6369997Z             {
2026-06-15T13:57:01.6370215Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6370392Z               "line": 275
2026-06-15T13:57:01.6370571Z             },
2026-06-15T13:57:01.6370728Z             {
2026-06-15T13:57:01.6370951Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6371131Z               "line": 289
2026-06-15T13:57:01.6371305Z             },
2026-06-15T13:57:01.6371470Z             {
2026-06-15T13:57:01.6371695Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6371881Z               "line": 300
2026-06-15T13:57:01.6372048Z             },
2026-06-15T13:57:01.6372220Z             {
2026-06-15T13:57:01.6372448Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6372639Z               "line": 313
2026-06-15T13:57:01.6372806Z             }
2026-06-15T13:57:01.6372982Z           ]
2026-06-15T13:57:01.6373157Z         },
2026-06-15T13:57:01.6373331Z         "int": {
2026-06-15T13:57:01.6373518Z           "complete": true,
2026-06-15T13:57:01.6373698Z           "evidence": [
2026-06-15T13:57:01.6373871Z             {
2026-06-15T13:57:01.6374114Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-15T13:57:01.6374300Z               "line": 116
2026-06-15T13:57:01.6374477Z             },
2026-06-15T13:57:01.6374638Z             {
2026-06-15T13:57:01.6374872Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-15T13:57:01.6375038Z               "line": 181
2026-06-15T13:57:01.6375215Z             }
2026-06-15T13:57:01.6375392Z           ]
2026-06-15T13:57:01.6375567Z         },
2026-06-15T13:57:01.6375741Z         "unit": {
2026-06-15T13:57:01.6375925Z           "complete": true,
2026-06-15T13:57:01.6376101Z           "evidence": [
2026-06-15T13:57:01.6376277Z             {
2026-06-15T13:57:01.6376516Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6376698Z               "line": 999
2026-06-15T13:57:01.6376864Z             },
2026-06-15T13:57:01.6377041Z             {
2026-06-15T13:57:01.6377273Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6377460Z               "line": 1016
2026-06-15T13:57:01.6377647Z             },
2026-06-15T13:57:01.6377821Z             {
2026-06-15T13:57:01.6378047Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6378231Z               "line": 1024
2026-06-15T13:57:01.6378407Z             },
2026-06-15T13:57:01.6378576Z             {
2026-06-15T13:57:01.6378815Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6379054Z               "line": 1048
2026-06-15T13:57:01.6379230Z             },
2026-06-15T13:57:01.6379388Z             {
2026-06-15T13:57:01.6379641Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:57:01.6379821Z               "line": 1499
2026-06-15T13:57:01.6379979Z             },
2026-06-15T13:57:01.6380165Z             {
2026-06-15T13:57:01.6380389Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6380567Z               "line": 347
2026-06-15T13:57:01.6380742Z             },
2026-06-15T13:57:01.6380905Z             {
2026-06-15T13:57:01.6381232Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6381410Z               "line": 370
2026-06-15T13:57:01.6381583Z             },
2026-06-15T13:57:01.6381739Z             {
2026-06-15T13:57:01.6381965Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6382146Z               "line": 407
2026-06-15T13:57:01.6382317Z             },
2026-06-15T13:57:01.6382484Z             {
2026-06-15T13:57:01.6382703Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6382889Z               "line": 431
2026-06-15T13:57:01.6383171Z             },
2026-06-15T13:57:01.6383347Z             {
2026-06-15T13:57:01.6383565Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6383746Z               "line": 483
2026-06-15T13:57:01.6383930Z             },
2026-06-15T13:57:01.6384092Z             {
2026-06-15T13:57:01.6384315Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6384478Z               "line": 499
2026-06-15T13:57:01.6384664Z             },
2026-06-15T13:57:01.6384841Z             {
2026-06-15T13:57:01.6385061Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6385236Z               "line": 514
2026-06-15T13:57:01.6385399Z             },
2026-06-15T13:57:01.6385580Z             {
2026-06-15T13:57:01.6385794Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6385972Z               "line": 531
2026-06-15T13:57:01.6386147Z             }
2026-06-15T13:57:01.6386306Z           ]
2026-06-15T13:57:01.6386470Z         }
2026-06-15T13:57:01.6386647Z       }
2026-06-15T13:57:01.6386828Z     },
2026-06-15T13:57:01.6386995Z     {
2026-06-15T13:57:01.6387175Z       "id": "REQ-MESH-3",
2026-06-15T13:57:01.6389972Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-15T13:57:01.6390172Z       "requiredStages": [
2026-06-15T13:57:01.6390348Z         "impl",
2026-06-15T13:57:01.6390525Z         "unit",
2026-06-15T13:57:01.6390696Z         "int"
2026-06-15T13:57:01.6390873Z       ],
2026-06-15T13:57:01.6391050Z       "stages": {
2026-06-15T13:57:01.6391221Z         "doc": {
2026-06-15T13:57:01.6391408Z           "complete": false,
2026-06-15T13:57:01.6391592Z           "evidence": []
2026-06-15T13:57:01.6391758Z         },
2026-06-15T13:57:01.6391923Z         "impl": {
2026-06-15T13:57:01.6392110Z           "complete": true,
2026-06-15T13:57:01.6392285Z           "evidence": [
2026-06-15T13:57:01.6392458Z             {
2026-06-15T13:57:01.6392701Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.6392886Z               "line": 641
2026-06-15T13:57:01.6393064Z             }
2026-06-15T13:57:01.6393234Z           ]
2026-06-15T13:57:01.6393407Z         },
2026-06-15T13:57:01.6393587Z         "int": {
2026-06-15T13:57:01.6393769Z           "complete": true,
2026-06-15T13:57:01.6393936Z           "evidence": [
2026-06-15T13:57:01.6394116Z             {
2026-06-15T13:57:01.6394349Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-15T13:57:01.6394528Z               "line": 373
2026-06-15T13:57:01.6394710Z             },
2026-06-15T13:57:01.6394876Z             {
2026-06-15T13:57:01.6395096Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-15T13:57:01.6395278Z               "line": 436
2026-06-15T13:57:01.6395443Z             }
2026-06-15T13:57:01.6395616Z           ]
2026-06-15T13:57:01.6395786Z         },
2026-06-15T13:57:01.6395964Z         "unit": {
2026-06-15T13:57:01.6396260Z           "complete": true,
2026-06-15T13:57:01.6396445Z           "evidence": [
2026-06-15T13:57:01.6396608Z             {
2026-06-15T13:57:01.6396842Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.6397026Z               "line": 910
2026-06-15T13:57:01.6397188Z             }
2026-06-15T13:57:01.6397359Z           ]
2026-06-15T13:57:01.6397517Z         }
2026-06-15T13:57:01.6397693Z       }
2026-06-15T13:57:01.6397852Z     },
2026-06-15T13:57:01.6398022Z     {
2026-06-15T13:57:01.6398218Z       "id": "REQ-MESH-4",
2026-06-15T13:57:01.6401886Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-15T13:57:01.6402199Z       "requiredStages": [
2026-06-15T13:57:01.6402380Z         "impl",
2026-06-15T13:57:01.6402559Z         "unit",
2026-06-15T13:57:01.6402765Z         "int"
2026-06-15T13:57:01.6402942Z       ],
2026-06-15T13:57:01.6403122Z       "stages": {
2026-06-15T13:57:01.6403299Z         "doc": {
2026-06-15T13:57:01.6403498Z           "complete": false,
2026-06-15T13:57:01.6403690Z           "evidence": []
2026-06-15T13:57:01.6403852Z         },
2026-06-15T13:57:01.6404019Z         "impl": {
2026-06-15T13:57:01.6404201Z           "complete": true,
2026-06-15T13:57:01.6404380Z           "evidence": [
2026-06-15T13:57:01.6404545Z             {
2026-06-15T13:57:01.6404804Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T13:57:01.6404994Z               "line": 33
2026-06-15T13:57:01.6405170Z             },
2026-06-15T13:57:01.6405346Z             {
2026-06-15T13:57:01.6405589Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6405774Z               "line": 68
2026-06-15T13:57:01.6405937Z             },
2026-06-15T13:57:01.6406114Z             {
2026-06-15T13:57:01.6406351Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6406524Z               "line": 111
2026-06-15T13:57:01.6406700Z             },
2026-06-15T13:57:01.6406863Z             {
2026-06-15T13:57:01.6407106Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6407277Z               "line": 462
2026-06-15T13:57:01.6407455Z             },
2026-06-15T13:57:01.6407624Z             {
2026-06-15T13:57:01.6407854Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6408034Z               "line": 711
2026-06-15T13:57:01.6408206Z             },
2026-06-15T13:57:01.6408378Z             {
2026-06-15T13:57:01.6408606Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6408787Z               "line": 725
2026-06-15T13:57:01.6409027Z             },
2026-06-15T13:57:01.6409193Z             {
2026-06-15T13:57:01.6409422Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.6409603Z               "line": 132
2026-06-15T13:57:01.6409783Z             },
2026-06-15T13:57:01.6409954Z             {
2026-06-15T13:57:01.6410181Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T13:57:01.6410363Z               "line": 26
2026-06-15T13:57:01.6410533Z             },
2026-06-15T13:57:01.6410711Z             {
2026-06-15T13:57:01.6410945Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T13:57:01.6411130Z               "line": 97
2026-06-15T13:57:01.6411307Z             },
2026-06-15T13:57:01.6411478Z             {
2026-06-15T13:57:01.6411941Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T13:57:01.6412117Z               "line": 119
2026-06-15T13:57:01.6412294Z             },
2026-06-15T13:57:01.6412460Z             {
2026-06-15T13:57:01.6412689Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.6412865Z               "line": 82
2026-06-15T13:57:01.6413044Z             },
2026-06-15T13:57:01.6413215Z             {
2026-06-15T13:57:01.6413444Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.6413631Z               "line": 111
2026-06-15T13:57:01.6413921Z             },
2026-06-15T13:57:01.6414098Z             {
2026-06-15T13:57:01.6414321Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.6414499Z               "line": 232
2026-06-15T13:57:01.6414674Z             },
2026-06-15T13:57:01.6414842Z             {
2026-06-15T13:57:01.6415066Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.6415246Z               "line": 245
2026-06-15T13:57:01.6415427Z             },
2026-06-15T13:57:01.6415605Z             {
2026-06-15T13:57:01.6415807Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6415996Z               "line": 4220
2026-06-15T13:57:01.6416163Z             }
2026-06-15T13:57:01.6416330Z           ]
2026-06-15T13:57:01.6416497Z         },
2026-06-15T13:57:01.6416679Z         "int": {
2026-06-15T13:57:01.6416860Z           "complete": true,
2026-06-15T13:57:01.6417032Z           "evidence": [
2026-06-15T13:57:01.6417208Z             {
2026-06-15T13:57:01.6417432Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-15T13:57:01.6417623Z               "line": 98
2026-06-15T13:57:01.6417794Z             },
2026-06-15T13:57:01.6417972Z             {
2026-06-15T13:57:01.6418203Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-15T13:57:01.6421704Z               "line": 140
2026-06-15T13:57:01.6421934Z             }
2026-06-15T13:57:01.6422100Z           ]
2026-06-15T13:57:01.6422287Z         },
2026-06-15T13:57:01.6422464Z         "unit": {
2026-06-15T13:57:01.6422658Z           "complete": true,
2026-06-15T13:57:01.6422831Z           "evidence": [
2026-06-15T13:57:01.6422992Z             {
2026-06-15T13:57:01.6423249Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T13:57:01.6423430Z               "line": 178
2026-06-15T13:57:01.6423594Z             },
2026-06-15T13:57:01.6423761Z             {
2026-06-15T13:57:01.6424004Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T13:57:01.6424186Z               "line": 242
2026-06-15T13:57:01.6424362Z             },
2026-06-15T13:57:01.6424538Z             {
2026-06-15T13:57:01.6424777Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6424953Z               "line": 1079
2026-06-15T13:57:01.6425111Z             },
2026-06-15T13:57:01.6425277Z             {
2026-06-15T13:57:01.6425515Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6425698Z               "line": 1109
2026-06-15T13:57:01.6425858Z             },
2026-06-15T13:57:01.6426029Z             {
2026-06-15T13:57:01.6426265Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:57:01.6426433Z               "line": 1129
2026-06-15T13:57:01.6426594Z             },
2026-06-15T13:57:01.6426762Z             {
2026-06-15T13:57:01.6427005Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:57:01.6427185Z               "line": 602
2026-06-15T13:57:01.6427358Z             },
2026-06-15T13:57:01.6427534Z             {
2026-06-15T13:57:01.6427763Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T13:57:01.6427935Z               "line": 148
2026-06-15T13:57:01.6428102Z             },
2026-06-15T13:57:01.6428265Z             {
2026-06-15T13:57:01.6428484Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T13:57:01.6428664Z               "line": 169
2026-06-15T13:57:01.6428830Z             },
2026-06-15T13:57:01.6429232Z             {
2026-06-15T13:57:01.6429440Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T13:57:01.6429617Z               "line": 181
2026-06-15T13:57:01.6429779Z             },
2026-06-15T13:57:01.6429945Z             {
2026-06-15T13:57:01.6430161Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T13:57:01.6430337Z               "line": 202
2026-06-15T13:57:01.6430510Z             },
2026-06-15T13:57:01.6430670Z             {
2026-06-15T13:57:01.6430885Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.6431189Z               "line": 375
2026-06-15T13:57:01.6431363Z             },
2026-06-15T13:57:01.6431527Z             {
2026-06-15T13:57:01.6431740Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.6431921Z               "line": 407
2026-06-15T13:57:01.6432094Z             },
2026-06-15T13:57:01.6432274Z             {
2026-06-15T13:57:01.6432474Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6432655Z               "line": 8466
2026-06-15T13:57:01.6432813Z             }
2026-06-15T13:57:01.6432990Z           ]
2026-06-15T13:57:01.6433151Z         }
2026-06-15T13:57:01.6433319Z       }
2026-06-15T13:57:01.6433480Z     },
2026-06-15T13:57:01.6433644Z     {
2026-06-15T13:57:01.6433832Z       "id": "REQ-MESH-5",
2026-06-15T13:57:01.6436129Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-15T13:57:01.6436333Z       "requiredStages": [
2026-06-15T13:57:01.6436508Z         "impl",
2026-06-15T13:57:01.6436683Z         "unit"
2026-06-15T13:57:01.6436859Z       ],
2026-06-15T13:57:01.6437026Z       "stages": {
2026-06-15T13:57:01.6437199Z         "doc": {
2026-06-15T13:57:01.6437384Z           "complete": false,
2026-06-15T13:57:01.6437556Z           "evidence": []
2026-06-15T13:57:01.6437722Z         },
2026-06-15T13:57:01.6437904Z         "impl": {
2026-06-15T13:57:01.6438089Z           "complete": true,
2026-06-15T13:57:01.6438266Z           "evidence": [
2026-06-15T13:57:01.6438438Z             {
2026-06-15T13:57:01.6438681Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:57:01.6438858Z               "line": 61
2026-06-15T13:57:01.6439125Z             },
2026-06-15T13:57:01.6439304Z             {
2026-06-15T13:57:01.6439534Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:57:01.6439719Z               "line": 109
2026-06-15T13:57:01.6439891Z             },
2026-06-15T13:57:01.6440059Z             {
2026-06-15T13:57:01.6440286Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.6440468Z               "line": 104
2026-06-15T13:57:01.6440639Z             },
2026-06-15T13:57:01.6440802Z             {
2026-06-15T13:57:01.6441027Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.6441202Z               "line": 105
2026-06-15T13:57:01.6441380Z             },
2026-06-15T13:57:01.6441540Z             {
2026-06-15T13:57:01.6441786Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6441967Z               "line": 85
2026-06-15T13:57:01.6442143Z             },
2026-06-15T13:57:01.6442305Z             {
2026-06-15T13:57:01.6442548Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6442729Z               "line": 250
2026-06-15T13:57:01.6442891Z             },
2026-06-15T13:57:01.6443063Z             {
2026-06-15T13:57:01.6443288Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6443463Z               "line": 314
2026-06-15T13:57:01.6443632Z             },
2026-06-15T13:57:01.6443923Z             {
2026-06-15T13:57:01.6444175Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6444350Z               "line": 715
2026-06-15T13:57:01.6444526Z             },
2026-06-15T13:57:01.6444691Z             {
2026-06-15T13:57:01.6444911Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:57:01.6445086Z               "line": 101
2026-06-15T13:57:01.6445254Z             },
2026-06-15T13:57:01.6445425Z             {
2026-06-15T13:57:01.6445640Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6445940Z               "line": 193
2026-06-15T13:57:01.6446112Z             }
2026-06-15T13:57:01.6446287Z           ]
2026-06-15T13:57:01.6446451Z         },
2026-06-15T13:57:01.6446631Z         "int": {
2026-06-15T13:57:01.6446837Z           "complete": false,
2026-06-15T13:57:01.6447016Z           "evidence": []
2026-06-15T13:57:01.6447187Z         },
2026-06-15T13:57:01.6447361Z         "unit": {
2026-06-15T13:57:01.6447553Z           "complete": true,
2026-06-15T13:57:01.6447739Z           "evidence": [
2026-06-15T13:57:01.6447906Z             {
2026-06-15T13:57:01.6448140Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6448315Z               "line": 957
2026-06-15T13:57:01.6448492Z             },
2026-06-15T13:57:01.6448659Z             {
2026-06-15T13:57:01.6448883Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:57:01.6449141Z               "line": 462
2026-06-15T13:57:01.6449313Z             }
2026-06-15T13:57:01.6449488Z           ]
2026-06-15T13:57:01.6449657Z         }
2026-06-15T13:57:01.6449831Z       }
2026-06-15T13:57:01.6449999Z     },
2026-06-15T13:57:01.6450165Z     {
2026-06-15T13:57:01.6450347Z       "id": "REQ-MESH-6",
2026-06-15T13:57:01.6452356Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-15T13:57:01.6452541Z       "requiredStages": [
2026-06-15T13:57:01.6452703Z         "impl",
2026-06-15T13:57:01.6452870Z         "unit"
2026-06-15T13:57:01.6453046Z       ],
2026-06-15T13:57:01.6453224Z       "stages": {
2026-06-15T13:57:01.6453398Z         "doc": {
2026-06-15T13:57:01.6453576Z           "complete": false,
2026-06-15T13:57:01.6453747Z           "evidence": []
2026-06-15T13:57:01.6453914Z         },
2026-06-15T13:57:01.6454095Z         "impl": {
2026-06-15T13:57:01.6454281Z           "complete": true,
2026-06-15T13:57:01.6454454Z           "evidence": [
2026-06-15T13:57:01.6454614Z             {
2026-06-15T13:57:01.6454812Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6454991Z               "line": 3743
2026-06-15T13:57:01.6455153Z             }
2026-06-15T13:57:01.6455341Z           ]
2026-06-15T13:57:01.6455509Z         },
2026-06-15T13:57:01.6455684Z         "int": {
2026-06-15T13:57:01.6455862Z           "complete": false,
2026-06-15T13:57:01.6456043Z           "evidence": []
2026-06-15T13:57:01.6456219Z         },
2026-06-15T13:57:01.6456391Z         "unit": {
2026-06-15T13:57:01.6456571Z           "complete": true,
2026-06-15T13:57:01.6456754Z           "evidence": [
2026-06-15T13:57:01.6456910Z             {
2026-06-15T13:57:01.6457120Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6457297Z               "line": 8999
2026-06-15T13:57:01.6457477Z             },
2026-06-15T13:57:01.6457639Z             {
2026-06-15T13:57:01.6457836Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6458023Z               "line": 9026
2026-06-15T13:57:01.6458189Z             },
2026-06-15T13:57:01.6458361Z             {
2026-06-15T13:57:01.6458575Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6458890Z               "line": 9050
2026-06-15T13:57:01.6459142Z             }
2026-06-15T13:57:01.6459315Z           ]
2026-06-15T13:57:01.6459496Z         }
2026-06-15T13:57:01.6459663Z       }
2026-06-15T13:57:01.6459834Z     },
2026-06-15T13:57:01.6459992Z     {
2026-06-15T13:57:01.6460184Z       "id": "REQ-MIGRATE-1",
2026-06-15T13:57:01.6460496Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-15T13:57:01.6460678Z       "requiredStages": [],
2026-06-15T13:57:01.6460854Z       "stages": {
2026-06-15T13:57:01.6461025Z         "doc": {
2026-06-15T13:57:01.6461322Z           "complete": false,
2026-06-15T13:57:01.6461498Z           "evidence": []
2026-06-15T13:57:01.6461674Z         },
2026-06-15T13:57:01.6461832Z         "impl": {
2026-06-15T13:57:01.6462008Z           "complete": false,
2026-06-15T13:57:01.6462185Z           "evidence": []
2026-06-15T13:57:01.6462361Z         },
2026-06-15T13:57:01.6462533Z         "int": {
2026-06-15T13:57:01.6462712Z           "complete": false,
2026-06-15T13:57:01.6462892Z           "evidence": []
2026-06-15T13:57:01.6463063Z         },
2026-06-15T13:57:01.6463226Z         "unit": {
2026-06-15T13:57:01.6463411Z           "complete": false,
2026-06-15T13:57:01.6463592Z           "evidence": []
2026-06-15T13:57:01.6463764Z         }
2026-06-15T13:57:01.6463931Z       }
2026-06-15T13:57:01.6464103Z     },
2026-06-15T13:57:01.6464264Z     {
2026-06-15T13:57:01.6464451Z       "id": "REQ-MSG-1",
2026-06-15T13:57:01.6465242Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-15T13:57:01.6465433Z       "requiredStages": [
2026-06-15T13:57:01.6465603Z         "impl",
2026-06-15T13:57:01.6465774Z         "unit",
2026-06-15T13:57:01.6465954Z         "int"
2026-06-15T13:57:01.6466126Z       ],
2026-06-15T13:57:01.6466302Z       "stages": {
2026-06-15T13:57:01.6466469Z         "doc": {
2026-06-15T13:57:01.6466641Z           "complete": false,
2026-06-15T13:57:01.6466835Z           "evidence": []
2026-06-15T13:57:01.6466999Z         },
2026-06-15T13:57:01.6467174Z         "impl": {
2026-06-15T13:57:01.6467352Z           "complete": true,
2026-06-15T13:57:01.6467532Z           "evidence": [
2026-06-15T13:57:01.6467708Z             {
2026-06-15T13:57:01.6467924Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:57:01.6468103Z               "line": 28
2026-06-15T13:57:01.6468275Z             },
2026-06-15T13:57:01.6468444Z             {
2026-06-15T13:57:01.6468651Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:57:01.6468830Z               "line": 94
2026-06-15T13:57:01.6469064Z             },
2026-06-15T13:57:01.6469237Z             {
2026-06-15T13:57:01.6469450Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:57:01.6469627Z               "line": 127
2026-06-15T13:57:01.6469804Z             },
2026-06-15T13:57:01.6469975Z             {
2026-06-15T13:57:01.6470191Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:57:01.6470366Z               "line": 149
2026-06-15T13:57:01.6470534Z             },
2026-06-15T13:57:01.6470705Z             {
2026-06-15T13:57:01.6470913Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:57:01.6471094Z               "line": 174
2026-06-15T13:57:01.6471271Z             },
2026-06-15T13:57:01.6471433Z             {
2026-06-15T13:57:01.6471657Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T13:57:01.6471834Z               "line": 18
2026-06-15T13:57:01.6472010Z             },
2026-06-15T13:57:01.6472186Z             {
2026-06-15T13:57:01.6472407Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:57:01.6472587Z               "line": 13
2026-06-15T13:57:01.6472755Z             },
2026-06-15T13:57:01.6472930Z             {
2026-06-15T13:57:01.6473135Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:57:01.6473306Z               "line": 62
2026-06-15T13:57:01.6473579Z             },
2026-06-15T13:57:01.6473757Z             {
2026-06-15T13:57:01.6473976Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:57:01.6474152Z               "line": 13
2026-06-15T13:57:01.6474320Z             }
2026-06-15T13:57:01.6474486Z           ]
2026-06-15T13:57:01.6474663Z         },
2026-06-15T13:57:01.6474829Z         "int": {
2026-06-15T13:57:01.6475025Z           "complete": true,
2026-06-15T13:57:01.6475206Z           "evidence": [
2026-06-15T13:57:01.6475373Z             {
2026-06-15T13:57:01.6475626Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T13:57:01.6475923Z               "line": 9
2026-06-15T13:57:01.6476101Z             },
2026-06-15T13:57:01.6476258Z             {
2026-06-15T13:57:01.6476514Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T13:57:01.6476691Z               "line": 56
2026-06-15T13:57:01.6476863Z             },
2026-06-15T13:57:01.6477029Z             {
2026-06-15T13:57:01.6477367Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T13:57:01.6477549Z               "line": 113
2026-06-15T13:57:01.6477711Z             }
2026-06-15T13:57:01.6477883Z           ]
2026-06-15T13:57:01.6478054Z         },
2026-06-15T13:57:01.6478222Z         "unit": {
2026-06-15T13:57:01.6478408Z           "complete": true,
2026-06-15T13:57:01.6478584Z           "evidence": [
2026-06-15T13:57:01.6478754Z             {
2026-06-15T13:57:01.6479071Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:57:01.6479253Z               "line": 203
2026-06-15T13:57:01.6479434Z             },
2026-06-15T13:57:01.6479596Z             {
2026-06-15T13:57:01.6479816Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:57:01.6479986Z               "line": 232
2026-06-15T13:57:01.6480168Z             },
2026-06-15T13:57:01.6480334Z             {
2026-06-15T13:57:01.6480554Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:57:01.6480727Z               "line": 277
2026-06-15T13:57:01.6480883Z             },
2026-06-15T13:57:01.6481056Z             {
2026-06-15T13:57:01.6481270Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:57:01.6481451Z               "line": 300
2026-06-15T13:57:01.6481611Z             },
2026-06-15T13:57:01.6481775Z             {
2026-06-15T13:57:01.6481988Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:57:01.6482150Z               "line": 325
2026-06-15T13:57:01.6482328Z             },
2026-06-15T13:57:01.6482493Z             {
2026-06-15T13:57:01.6482708Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T13:57:01.6482899Z               "line": 204
2026-06-15T13:57:01.6483071Z             },
2026-06-15T13:57:01.6483239Z             {
2026-06-15T13:57:01.6483461Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T13:57:01.6483644Z               "line": 237
2026-06-15T13:57:01.6483813Z             },
2026-06-15T13:57:01.6483994Z             {
2026-06-15T13:57:01.6484221Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T13:57:01.6484393Z               "line": 251
2026-06-15T13:57:01.6484570Z             },
2026-06-15T13:57:01.6484746Z             {
2026-06-15T13:57:01.6484961Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T13:57:01.6485142Z               "line": 263
2026-06-15T13:57:01.6485318Z             },
2026-06-15T13:57:01.6485495Z             {
2026-06-15T13:57:01.6485704Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:57:01.6485891Z               "line": 162
2026-06-15T13:57:01.6486057Z             },
2026-06-15T13:57:01.6486234Z             {
2026-06-15T13:57:01.6486439Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:57:01.6486615Z               "line": 242
2026-06-15T13:57:01.6486786Z             },
2026-06-15T13:57:01.6486965Z             {
2026-06-15T13:57:01.6487170Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:57:01.6487350Z               "line": 134
2026-06-15T13:57:01.6487636Z             },
2026-06-15T13:57:01.6487800Z             {
2026-06-15T13:57:01.6488019Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:57:01.6488195Z               "line": 153
2026-06-15T13:57:01.6488357Z             }
2026-06-15T13:57:01.6488533Z           ]
2026-06-15T13:57:01.6488692Z         }
2026-06-15T13:57:01.6488857Z       }
2026-06-15T13:57:01.6489116Z     },
2026-06-15T13:57:01.6489281Z     {
2026-06-15T13:57:01.6489470Z       "id": "REQ-MSG-2",
2026-06-15T13:57:01.6489946Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-15T13:57:01.6490246Z       "requiredStages": [
2026-06-15T13:57:01.6490423Z         "impl",
2026-06-15T13:57:01.6490595Z         "unit"
2026-06-15T13:57:01.6490756Z       ],
2026-06-15T13:57:01.6490929Z       "stages": {
2026-06-15T13:57:01.6491100Z         "doc": {
2026-06-15T13:57:01.6491287Z           "complete": false,
2026-06-15T13:57:01.6491476Z           "evidence": []
2026-06-15T13:57:01.6491640Z         },
2026-06-15T13:57:01.6491815Z         "impl": {
2026-06-15T13:57:01.6491997Z           "complete": true,
2026-06-15T13:57:01.6492176Z           "evidence": [
2026-06-15T13:57:01.6492349Z             {
2026-06-15T13:57:01.6492558Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6492734Z               "line": 11
2026-06-15T13:57:01.6492902Z             },
2026-06-15T13:57:01.6493077Z             {
2026-06-15T13:57:01.6493273Z               "path": "crates/spt/src/main.rs",
2026-06-15T13:57:01.6493454Z               "line": 8
2026-06-15T13:57:01.6493631Z             }
2026-06-15T13:57:01.6493794Z           ]
2026-06-15T13:57:01.6493959Z         },
2026-06-15T13:57:01.6494133Z         "int": {
2026-06-15T13:57:01.6494312Z           "complete": false,
2026-06-15T13:57:01.6494488Z           "evidence": []
2026-06-15T13:57:01.6494662Z         },
2026-06-15T13:57:01.6494839Z         "unit": {
2026-06-15T13:57:01.6495020Z           "complete": true,
2026-06-15T13:57:01.6495201Z           "evidence": [
2026-06-15T13:57:01.6495372Z             {
2026-06-15T13:57:01.6495564Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6495746Z               "line": 6321
2026-06-15T13:57:01.6495921Z             },
2026-06-15T13:57:01.6496099Z             {
2026-06-15T13:57:01.6496298Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6496479Z               "line": 6363
2026-06-15T13:57:01.6496636Z             },
2026-06-15T13:57:01.6496808Z             {
2026-06-15T13:57:01.6497004Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6497193Z               "line": 6412
2026-06-15T13:57:01.6497370Z             },
2026-06-15T13:57:01.6497539Z             {
2026-06-15T13:57:01.6497745Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6497925Z               "line": 6435
2026-06-15T13:57:01.6498097Z             },
2026-06-15T13:57:01.6498269Z             {
2026-06-15T13:57:01.6498473Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6498660Z               "line": 8221
2026-06-15T13:57:01.6498822Z             },
2026-06-15T13:57:01.6499060Z             {
2026-06-15T13:57:01.6499252Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6499431Z               "line": 8230
2026-06-15T13:57:01.6499605Z             },
2026-06-15T13:57:01.6499774Z             {
2026-06-15T13:57:01.6499974Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6500153Z               "line": 8244
2026-06-15T13:57:01.6500321Z             }
2026-06-15T13:57:01.6500487Z           ]
2026-06-15T13:57:01.6500669Z         }
2026-06-15T13:57:01.6500835Z       }
2026-06-15T13:57:01.6501012Z     },
2026-06-15T13:57:01.6501180Z     {
2026-06-15T13:57:01.6501360Z       "id": "REQ-MSG-3",
2026-06-15T13:57:01.6502032Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-15T13:57:01.6502228Z       "requiredStages": [
2026-06-15T13:57:01.6502510Z         "impl",
2026-06-15T13:57:01.6502684Z         "unit",
2026-06-15T13:57:01.6502852Z         "int"
2026-06-15T13:57:01.6503027Z       ],
2026-06-15T13:57:01.6503199Z       "stages": {
2026-06-15T13:57:01.6503375Z         "doc": {
2026-06-15T13:57:01.6503553Z           "complete": false,
2026-06-15T13:57:01.6503734Z           "evidence": []
2026-06-15T13:57:01.6503906Z         },
2026-06-15T13:57:01.6504082Z         "impl": {
2026-06-15T13:57:01.6504267Z           "complete": true,
2026-06-15T13:57:01.6504449Z           "evidence": [
2026-06-15T13:57:01.6504726Z             {
2026-06-15T13:57:01.6504957Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T13:57:01.6505128Z               "line": 19
2026-06-15T13:57:01.6505288Z             },
2026-06-15T13:57:01.6505457Z             {
2026-06-15T13:57:01.6505661Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:57:01.6505837Z               "line": 21
2026-06-15T13:57:01.6506020Z             },
2026-06-15T13:57:01.6506175Z             {
2026-06-15T13:57:01.6506395Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:57:01.6506571Z               "line": 48
2026-06-15T13:57:01.6506734Z             },
2026-06-15T13:57:01.6506911Z             {
2026-06-15T13:57:01.6507115Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:57:01.6507293Z               "line": 151
2026-06-15T13:57:01.6507459Z             }
2026-06-15T13:57:01.6507627Z           ]
2026-06-15T13:57:01.6507801Z         },
2026-06-15T13:57:01.6507982Z         "int": {
2026-06-15T13:57:01.6508180Z           "complete": true,
2026-06-15T13:57:01.6508361Z           "evidence": [
2026-06-15T13:57:01.6508533Z             {
2026-06-15T13:57:01.6508785Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T13:57:01.6509043Z               "line": 10
2026-06-15T13:57:01.6509216Z             },
2026-06-15T13:57:01.6509386Z             {
2026-06-15T13:57:01.6509639Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T13:57:01.6509817Z               "line": 56
2026-06-15T13:57:01.6509996Z             }
2026-06-15T13:57:01.6510170Z           ]
2026-06-15T13:57:01.6510339Z         },
2026-06-15T13:57:01.6510515Z         "unit": {
2026-06-15T13:57:01.6510689Z           "complete": true,
2026-06-15T13:57:01.6510872Z           "evidence": [
2026-06-15T13:57:01.6511037Z             {
2026-06-15T13:57:01.6511253Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:57:01.6511425Z               "line": 205
2026-06-15T13:57:01.6511605Z             },
2026-06-15T13:57:01.6511777Z             {
2026-06-15T13:57:01.6511991Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:57:01.6512168Z               "line": 224
2026-06-15T13:57:01.6512335Z             },
2026-06-15T13:57:01.6512511Z             {
2026-06-15T13:57:01.6512722Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:57:01.6512902Z               "line": 247
2026-06-15T13:57:01.6513070Z             }
2026-06-15T13:57:01.6513239Z           ]
2026-06-15T13:57:01.6513412Z         }
2026-06-15T13:57:01.6513582Z       }
2026-06-15T13:57:01.6513760Z     },
2026-06-15T13:57:01.6513926Z     {
2026-06-15T13:57:01.6514108Z       "id": "REQ-MSG-4",
2026-06-15T13:57:01.6515427Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-15T13:57:01.6515627Z       "requiredStages": [
2026-06-15T13:57:01.6515797Z         "impl",
2026-06-15T13:57:01.6515969Z         "unit",
2026-06-15T13:57:01.6516145Z         "int"
2026-06-15T13:57:01.6516312Z       ],
2026-06-15T13:57:01.6516474Z       "stages": {
2026-06-15T13:57:01.6516650Z         "doc": {
2026-06-15T13:57:01.6516832Z           "complete": false,
2026-06-15T13:57:01.6517009Z           "evidence": []
2026-06-15T13:57:01.6517285Z         },
2026-06-15T13:57:01.6517461Z         "impl": {
2026-06-15T13:57:01.6517637Z           "complete": true,
2026-06-15T13:57:01.6517810Z           "evidence": [
2026-06-15T13:57:01.6517990Z             {
2026-06-15T13:57:01.6518197Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:57:01.6518375Z               "line": 19
2026-06-15T13:57:01.6518547Z             },
2026-06-15T13:57:01.6518740Z             {
2026-06-15T13:57:01.6519040Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:57:01.6519218Z               "line": 46
2026-06-15T13:57:01.6519617Z             },
2026-06-15T13:57:01.6519795Z             {
2026-06-15T13:57:01.6520028Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.6520199Z               "line": 409
2026-06-15T13:57:01.6520367Z             },
2026-06-15T13:57:01.6520537Z             {
2026-06-15T13:57:01.6520749Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6520923Z               "line": 2714
2026-06-15T13:57:01.6521099Z             }
2026-06-15T13:57:01.6521273Z           ]
2026-06-15T13:57:01.6521442Z         },
2026-06-15T13:57:01.6521607Z         "int": {
2026-06-15T13:57:01.6521780Z           "complete": true,
2026-06-15T13:57:01.6521960Z           "evidence": [
2026-06-15T13:57:01.6522132Z             {
2026-06-15T13:57:01.6522366Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T13:57:01.6522542Z               "line": 98
2026-06-15T13:57:01.6522704Z             },
2026-06-15T13:57:01.6522875Z             {
2026-06-15T13:57:01.6523095Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T13:57:01.6523287Z               "line": 128
2026-06-15T13:57:01.6523462Z             }
2026-06-15T13:57:01.6523630Z           ]
2026-06-15T13:57:01.6523804Z         },
2026-06-15T13:57:01.6523968Z         "unit": {
2026-06-15T13:57:01.6524152Z           "complete": true,
2026-06-15T13:57:01.6524334Z           "evidence": [
2026-06-15T13:57:01.6524505Z             {
2026-06-15T13:57:01.6524725Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:57:01.6524902Z               "line": 68
2026-06-15T13:57:01.6525082Z             },
2026-06-15T13:57:01.6525250Z             {
2026-06-15T13:57:01.6525455Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:57:01.6525626Z               "line": 79
2026-06-15T13:57:01.6525803Z             },
2026-06-15T13:57:01.6525974Z             {
2026-06-15T13:57:01.6526173Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:57:01.6526347Z               "line": 90
2026-06-15T13:57:01.6526530Z             },
2026-06-15T13:57:01.6526700Z             {
2026-06-15T13:57:01.6526906Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:57:01.6527082Z               "line": 151
2026-06-15T13:57:01.6527254Z             }
2026-06-15T13:57:01.6527426Z           ]
2026-06-15T13:57:01.6527597Z         }
2026-06-15T13:57:01.6527759Z       }
2026-06-15T13:57:01.6527931Z     },
2026-06-15T13:57:01.6528108Z     {
2026-06-15T13:57:01.6528278Z       "id": "REQ-MSG-5",
2026-06-15T13:57:01.6529591Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
2026-06-15T13:57:01.6529773Z       "requiredStages": [
2026-06-15T13:57:01.6529954Z         "doc",
2026-06-15T13:57:01.6530126Z         "impl",
2026-06-15T13:57:01.6530302Z         "unit"
2026-06-15T13:57:01.6530478Z       ],
2026-06-15T13:57:01.6530656Z       "stages": {
2026-06-15T13:57:01.6530821Z         "doc": {
2026-06-15T13:57:01.6531004Z           "complete": true,
2026-06-15T13:57:01.6531179Z           "evidence": [
2026-06-15T13:57:01.6531351Z             {
2026-06-15T13:57:01.6531550Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.6531729Z               "line": 212
2026-06-15T13:57:01.6531891Z             }
2026-06-15T13:57:01.6532191Z           ]
2026-06-15T13:57:01.6532363Z         },
2026-06-15T13:57:01.6532545Z         "impl": {
2026-06-15T13:57:01.6532720Z           "complete": true,
2026-06-15T13:57:01.6532903Z           "evidence": [
2026-06-15T13:57:01.6533083Z             {
2026-06-15T13:57:01.6533293Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T13:57:01.6533470Z               "line": 60
2026-06-15T13:57:01.6533631Z             },
2026-06-15T13:57:01.6533809Z             {
2026-06-15T13:57:01.6534027Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.6534317Z               "line": 118
2026-06-15T13:57:01.6534489Z             },
2026-06-15T13:57:01.6534646Z             {
2026-06-15T13:57:01.6534852Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.6535031Z               "line": 127
2026-06-15T13:57:01.6535209Z             },
2026-06-15T13:57:01.6535376Z             {
2026-06-15T13:57:01.6535595Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.6535786Z               "line": 141
2026-06-15T13:57:01.6535957Z             },
2026-06-15T13:57:01.6536129Z             {
2026-06-15T13:57:01.6536344Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.6536529Z               "line": 170
2026-06-15T13:57:01.6536700Z             },
2026-06-15T13:57:01.6536860Z             {
2026-06-15T13:57:01.6537065Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6537245Z               "line": 2460
2026-06-15T13:57:01.6537419Z             }
2026-06-15T13:57:01.6537574Z           ]
2026-06-15T13:57:01.6537757Z         },
2026-06-15T13:57:01.6537933Z         "int": {
2026-06-15T13:57:01.6538109Z           "complete": true,
2026-06-15T13:57:01.6538286Z           "evidence": [
2026-06-15T13:57:01.6538458Z             {
2026-06-15T13:57:01.6538687Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-15T13:57:01.6538852Z               "line": 19
2026-06-15T13:57:01.6539091Z             }
2026-06-15T13:57:01.6539283Z           ]
2026-06-15T13:57:01.6539453Z         },
2026-06-15T13:57:01.6539629Z         "unit": {
2026-06-15T13:57:01.6539798Z           "complete": true,
2026-06-15T13:57:01.6539980Z           "evidence": [
2026-06-15T13:57:01.6540146Z             {
2026-06-15T13:57:01.6540371Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T13:57:01.6540543Z               "line": 192
2026-06-15T13:57:01.6540714Z             },
2026-06-15T13:57:01.6540886Z             {
2026-06-15T13:57:01.6541105Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T13:57:01.6541286Z               "line": 154
2026-06-15T13:57:01.6541458Z             },
2026-06-15T13:57:01.6541629Z             {
2026-06-15T13:57:01.6541845Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:57:01.6542024Z               "line": 122
2026-06-15T13:57:01.6542201Z             },
2026-06-15T13:57:01.6542365Z             {
2026-06-15T13:57:01.6542586Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.6542761Z               "line": 444
2026-06-15T13:57:01.6542938Z             },
2026-06-15T13:57:01.6543110Z             {
2026-06-15T13:57:01.6543328Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.6543505Z               "line": 493
2026-06-15T13:57:01.6543676Z             },
2026-06-15T13:57:01.6543848Z             {
2026-06-15T13:57:01.6544069Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.6544249Z               "line": 509
2026-06-15T13:57:01.6544427Z             },
2026-06-15T13:57:01.6544602Z             {
2026-06-15T13:57:01.6544820Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:57:01.6544996Z               "line": 528
2026-06-15T13:57:01.6545173Z             },
2026-06-15T13:57:01.6545345Z             {
2026-06-15T13:57:01.6545544Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6545731Z               "line": 6264
2026-06-15T13:57:01.6545902Z             }
2026-06-15T13:57:01.6546188Z           ]
2026-06-15T13:57:01.6546356Z         }
2026-06-15T13:57:01.6546527Z       }
2026-06-15T13:57:01.6546699Z     },
2026-06-15T13:57:01.6546870Z     {
2026-06-15T13:57:01.6547046Z       "id": "REQ-MSG-6",
2026-06-15T13:57:01.6549723Z       "title": "cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)",
2026-06-15T13:57:01.6550027Z       "requiredStages": [
2026-06-15T13:57:01.6550203Z         "doc",
2026-06-15T13:57:01.6550377Z         "impl",
2026-06-15T13:57:01.6550545Z         "unit"
2026-06-15T13:57:01.6550716Z       ],
2026-06-15T13:57:01.6550903Z       "stages": {
2026-06-15T13:57:01.6551074Z         "doc": {
2026-06-15T13:57:01.6551256Z           "complete": true,
2026-06-15T13:57:01.6551428Z           "evidence": [
2026-06-15T13:57:01.6551594Z             {
2026-06-15T13:57:01.6551795Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.6551970Z               "line": 215
2026-06-15T13:57:01.6552134Z             }
2026-06-15T13:57:01.6552299Z           ]
2026-06-15T13:57:01.6555633Z         },
2026-06-15T13:57:01.6555871Z         "impl": {
2026-06-15T13:57:01.6556071Z           "complete": true,
2026-06-15T13:57:01.6556263Z           "evidence": [
2026-06-15T13:57:01.6556424Z             {
2026-06-15T13:57:01.6556672Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6556849Z               "line": 177
2026-06-15T13:57:01.6557025Z             },
2026-06-15T13:57:01.6557188Z             {
2026-06-15T13:57:01.6557440Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6557725Z               "line": 422
2026-06-15T13:57:01.6557891Z             },
2026-06-15T13:57:01.6558060Z             {
2026-06-15T13:57:01.6558300Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6558476Z               "line": 445
2026-06-15T13:57:01.6558638Z             },
2026-06-15T13:57:01.6558802Z             {
2026-06-15T13:57:01.6559102Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T13:57:01.6559282Z               "line": 89
2026-06-15T13:57:01.6559440Z             },
2026-06-15T13:57:01.6559606Z             {
2026-06-15T13:57:01.6559844Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.6560017Z               "line": 155
2026-06-15T13:57:01.6560197Z             }
2026-06-15T13:57:01.6560370Z           ]
2026-06-15T13:57:01.6560526Z         },
2026-06-15T13:57:01.6560702Z         "int": {
2026-06-15T13:57:01.6560886Z           "complete": false,
2026-06-15T13:57:01.6561067Z           "evidence": []
2026-06-15T13:57:01.6561252Z         },
2026-06-15T13:57:01.6561420Z         "unit": {
2026-06-15T13:57:01.6561600Z           "complete": true,
2026-06-15T13:57:01.6561777Z           "evidence": [
2026-06-15T13:57:01.6561949Z             {
2026-06-15T13:57:01.6562192Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6562364Z               "line": 1639
2026-06-15T13:57:01.6562535Z             },
2026-06-15T13:57:01.6562694Z             {
2026-06-15T13:57:01.6562913Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T13:57:01.6563088Z               "line": 219
2026-06-15T13:57:01.6563249Z             }
2026-06-15T13:57:01.6563419Z           ]
2026-06-15T13:57:01.6563591Z         }
2026-06-15T13:57:01.6563762Z       }
2026-06-15T13:57:01.6563920Z     },
2026-06-15T13:57:01.6564082Z     {
2026-06-15T13:57:01.6564264Z       "id": "REQ-MSG-ENVELOPE",
2026-06-15T13:57:01.6570296Z       "title": "The <EVENT type=\"msg\" from=…>body</EVENT> envelope (spt-proto::event, the ADR-0001 grammar) is the SOLE canonical arriving-message format at EVERY harness arriving-message surface on an AGENT perch — api listen AND api poll/worker-poll, byte-identical (reverses REQ-MSG-4's 'hook drains keep the raw frame by contract'). SCOPE CARVE-OUT: the shell-command relay (api poll <shell-id> --link, cmd_poll_shell) is a distinct internal transport carrying RAW MAC'd stamped frames the shell child consumes verbatim — NOT an arriving-message surface, deliberately EXEMPT from <EVENT> composition (notify_shell_e2e guards this boundary). __REPLY_TO__ — mis-elevated during the clean-room port to a fake ADR-0001 'stable wire format' (spt-msg/wire.rs, lib.rs) — is REMOVED entirely (spool format_row, the spt-msg TCP frame, emit parse_frame); (from, body) carried structurally, <EVENT> composed once at the delivery boundary. No legacy sister-interop (spt-core never required it). Reply-correlation rebinds onto the structural from / <EVENT from=…> attribute (ADR-0009 access-gate + ADR-0012 Psyche/spt-live reply-target). Self-delimiting by construction → finding F-002 (non-self-delimiting multi-message poll) dissolves. ADR-0020.",
2026-06-15T13:57:01.6570762Z       "requiredStages": [
2026-06-15T13:57:01.6570940Z         "doc",
2026-06-15T13:57:01.6571114Z         "impl",
2026-06-15T13:57:01.6571291Z         "unit",
2026-06-15T13:57:01.6571460Z         "int"
2026-06-15T13:57:01.6571618Z       ],
2026-06-15T13:57:01.6571794Z       "stages": {
2026-06-15T13:57:01.6571961Z         "doc": {
2026-06-15T13:57:01.6572136Z           "complete": true,
2026-06-15T13:57:01.6572304Z           "evidence": [
2026-06-15T13:57:01.6572480Z             {
2026-06-15T13:57:01.6572868Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-15T13:57:01.6573043Z               "line": 47
2026-06-15T13:57:01.6573220Z             }
2026-06-15T13:57:01.6573387Z           ]
2026-06-15T13:57:01.6573549Z         },
2026-06-15T13:57:01.6573714Z         "impl": {
2026-06-15T13:57:01.6573895Z           "complete": true,
2026-06-15T13:57:01.6574074Z           "evidence": [
2026-06-15T13:57:01.6574232Z             {
2026-06-15T13:57:01.6574446Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:57:01.6574618Z               "line": 20
2026-06-15T13:57:01.6574786Z             },
2026-06-15T13:57:01.6574947Z             {
2026-06-15T13:57:01.6575162Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:57:01.6575342Z               "line": 33
2026-06-15T13:57:01.6575505Z             },
2026-06-15T13:57:01.6575681Z             {
2026-06-15T13:57:01.6575881Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:57:01.6576064Z               "line": 47
2026-06-15T13:57:01.6576239Z             },
2026-06-15T13:57:01.6576407Z             {
2026-06-15T13:57:01.6576614Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:57:01.6576787Z               "line": 58
2026-06-15T13:57:01.6576967Z             },
2026-06-15T13:57:01.6577135Z             {
2026-06-15T13:57:01.6577398Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:57:01.6577587Z               "line": 14
2026-06-15T13:57:01.6577773Z             },
2026-06-15T13:57:01.6577940Z             {
2026-06-15T13:57:01.6578151Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:57:01.6578328Z               "line": 27
2026-06-15T13:57:01.6578494Z             },
2026-06-15T13:57:01.6578671Z             {
2026-06-15T13:57:01.6578883Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:57:01.6579219Z               "line": 40
2026-06-15T13:57:01.6579392Z             },
2026-06-15T13:57:01.6579568Z             {
2026-06-15T13:57:01.6579796Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.6579960Z               "line": 92
2026-06-15T13:57:01.6580144Z             },
2026-06-15T13:57:01.6580336Z             {
2026-06-15T13:57:01.6580551Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.6580740Z               "line": 143
2026-06-15T13:57:01.6581032Z             },
2026-06-15T13:57:01.6581210Z             {
2026-06-15T13:57:01.6581428Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.6581613Z               "line": 216
2026-06-15T13:57:01.6581822Z             },
2026-06-15T13:57:01.6581996Z             {
2026-06-15T13:57:01.6582259Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.6582440Z               "line": 410
2026-06-15T13:57:01.6582611Z             },
2026-06-15T13:57:01.6582789Z             {
2026-06-15T13:57:01.6583016Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:57:01.6583423Z               "line": 78
2026-06-15T13:57:01.6583674Z             },
2026-06-15T13:57:01.6583842Z             {
2026-06-15T13:57:01.6584048Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6584218Z               "line": 2715
2026-06-15T13:57:01.6584389Z             }
2026-06-15T13:57:01.6584554Z           ]
2026-06-15T13:57:01.6584730Z         },
2026-06-15T13:57:01.6584911Z         "int": {
2026-06-15T13:57:01.6585083Z           "complete": true,
2026-06-15T13:57:01.6585273Z           "evidence": [
2026-06-15T13:57:01.6585464Z             {
2026-06-15T13:57:01.6585760Z               "path": "crates/spt/tests/poll_envelope_e2e.rs",
2026-06-15T13:57:01.6585936Z               "line": 15
2026-06-15T13:57:01.6586108Z             }
2026-06-15T13:57:01.6586275Z           ]
2026-06-15T13:57:01.6586441Z         },
2026-06-15T13:57:01.6586619Z         "unit": {
2026-06-15T13:57:01.6586799Z           "complete": true,
2026-06-15T13:57:01.6586977Z           "evidence": [
2026-06-15T13:57:01.6587151Z             {
2026-06-15T13:57:01.6587357Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:57:01.6587537Z               "line": 102
2026-06-15T13:57:01.6587705Z             },
2026-06-15T13:57:01.6587871Z             {
2026-06-15T13:57:01.6588072Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:57:01.6588248Z               "line": 137
2026-06-15T13:57:01.6588424Z             },
2026-06-15T13:57:01.6588587Z             {
2026-06-15T13:57:01.6588806Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:57:01.6589073Z               "line": 98
2026-06-15T13:57:01.6589241Z             },
2026-06-15T13:57:01.6589410Z             {
2026-06-15T13:57:01.6589624Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:57:01.6589809Z               "line": 106
2026-06-15T13:57:01.6589976Z             },
2026-06-15T13:57:01.6590152Z             {
2026-06-15T13:57:01.6590361Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:57:01.6590552Z               "line": 113
2026-06-15T13:57:01.6590724Z             },
2026-06-15T13:57:01.6590896Z             {
2026-06-15T13:57:01.6591106Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:57:01.6591282Z               "line": 122
2026-06-15T13:57:01.6591450Z             }
2026-06-15T13:57:01.6591611Z           ]
2026-06-15T13:57:01.6591788Z         }
2026-06-15T13:57:01.6591954Z       }
2026-06-15T13:57:01.6592127Z     },
2026-06-15T13:57:01.6592296Z     {
2026-06-15T13:57:01.6592472Z       "id": "REQ-NET-1",
2026-06-15T13:57:01.6592820Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-15T13:57:01.6592995Z       "requiredStages": [
2026-06-15T13:57:01.6593172Z         "impl",
2026-06-15T13:57:01.6593339Z         "unit",
2026-06-15T13:57:01.6593510Z         "int"
2026-06-15T13:57:01.6593692Z       ],
2026-06-15T13:57:01.6593863Z       "stages": {
2026-06-15T13:57:01.6594045Z         "doc": {
2026-06-15T13:57:01.6594230Z           "complete": false,
2026-06-15T13:57:01.6594406Z           "evidence": []
2026-06-15T13:57:01.6594564Z         },
2026-06-15T13:57:01.6594740Z         "impl": {
2026-06-15T13:57:01.6594934Z           "complete": true,
2026-06-15T13:57:01.6595104Z           "evidence": [
2026-06-15T13:57:01.6595271Z             {
2026-06-15T13:57:01.6595504Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:57:01.6595814Z               "line": 54
2026-06-15T13:57:01.6595982Z             },
2026-06-15T13:57:01.6596148Z             {
2026-06-15T13:57:01.6596382Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:57:01.6596560Z               "line": 594
2026-06-15T13:57:01.6596739Z             },
2026-06-15T13:57:01.6596903Z             {
2026-06-15T13:57:01.6597121Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T13:57:01.6597292Z               "line": 130
2026-06-15T13:57:01.6597465Z             },
2026-06-15T13:57:01.6597640Z             {
2026-06-15T13:57:01.6597964Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6598146Z               "line": 97
2026-06-15T13:57:01.6598307Z             },
2026-06-15T13:57:01.6598484Z             {
2026-06-15T13:57:01.6598707Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6598890Z               "line": 159
2026-06-15T13:57:01.6599143Z             },
2026-06-15T13:57:01.6599313Z             {
2026-06-15T13:57:01.6599538Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6599705Z               "line": 175
2026-06-15T13:57:01.6599866Z             },
2026-06-15T13:57:01.6600027Z             {
2026-06-15T13:57:01.6600263Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6600441Z               "line": 190
2026-06-15T13:57:01.6600616Z             },
2026-06-15T13:57:01.6600775Z             {
2026-06-15T13:57:01.6600998Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6601184Z               "line": 271
2026-06-15T13:57:01.6601347Z             },
2026-06-15T13:57:01.6601518Z             {
2026-06-15T13:57:01.6601738Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6601908Z               "line": 306
2026-06-15T13:57:01.6602076Z             },
2026-06-15T13:57:01.6602233Z             {
2026-06-15T13:57:01.6602461Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6602649Z               "line": 312
2026-06-15T13:57:01.6602814Z             },
2026-06-15T13:57:01.6602990Z             {
2026-06-15T13:57:01.6603216Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6603394Z               "line": 318
2026-06-15T13:57:01.6603560Z             },
2026-06-15T13:57:01.6603723Z             {
2026-06-15T13:57:01.6603957Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6604132Z               "line": 334
2026-06-15T13:57:01.6604309Z             },
2026-06-15T13:57:01.6604476Z             {
2026-06-15T13:57:01.6604699Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6604867Z               "line": 354
2026-06-15T13:57:01.6605038Z             },
2026-06-15T13:57:01.6605202Z             {
2026-06-15T13:57:01.6605427Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T13:57:01.6605608Z               "line": 35
2026-06-15T13:57:01.6605763Z             },
2026-06-15T13:57:01.6605946Z             {
2026-06-15T13:57:01.6606161Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T13:57:01.6606341Z               "line": 85
2026-06-15T13:57:01.6606518Z             },
2026-06-15T13:57:01.6606675Z             {
2026-06-15T13:57:01.6606894Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.6607071Z               "line": 138
2026-06-15T13:57:01.6607248Z             },
2026-06-15T13:57:01.6607415Z             {
2026-06-15T13:57:01.6607628Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6607806Z               "line": 2557
2026-06-15T13:57:01.6607972Z             },
2026-06-15T13:57:01.6608144Z             {
2026-06-15T13:57:01.6608352Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:57:01.6608534Z               "line": 17
2026-06-15T13:57:01.6608696Z             }
2026-06-15T13:57:01.6608872Z           ]
2026-06-15T13:57:01.6609116Z         },
2026-06-15T13:57:01.6609282Z         "int": {
2026-06-15T13:57:01.6609587Z           "complete": true,
2026-06-15T13:57:01.6609764Z           "evidence": [
2026-06-15T13:57:01.6609926Z             {
2026-06-15T13:57:01.6610159Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:57:01.6610337Z               "line": 341
2026-06-15T13:57:01.6610506Z             },
2026-06-15T13:57:01.6610673Z             {
2026-06-15T13:57:01.6610895Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6611073Z               "line": 606
2026-06-15T13:57:01.6611233Z             },
2026-06-15T13:57:01.6611510Z             {
2026-06-15T13:57:01.6611739Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6611917Z               "line": 879
2026-06-15T13:57:01.6612092Z             }
2026-06-15T13:57:01.6612269Z           ]
2026-06-15T13:57:01.6612431Z         },
2026-06-15T13:57:01.6612608Z         "unit": {
2026-06-15T13:57:01.6612788Z           "complete": true,
2026-06-15T13:57:01.6612970Z           "evidence": [
2026-06-15T13:57:01.6613152Z             {
2026-06-15T13:57:01.6613374Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:57:01.6613555Z               "line": 651
2026-06-15T13:57:01.6613714Z             },
2026-06-15T13:57:01.6613878Z             {
2026-06-15T13:57:01.6614100Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:57:01.6614283Z               "line": 686
2026-06-15T13:57:01.6614455Z             },
2026-06-15T13:57:01.6614621Z             {
2026-06-15T13:57:01.6614855Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:57:01.6615036Z               "line": 936
2026-06-15T13:57:01.6615212Z             },
2026-06-15T13:57:01.6615374Z             {
2026-06-15T13:57:01.6615598Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T13:57:01.6615776Z               "line": 201
2026-06-15T13:57:01.6615950Z             },
2026-06-15T13:57:01.6616131Z             {
2026-06-15T13:57:01.6616358Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6616548Z               "line": 442
2026-06-15T13:57:01.6616721Z             },
2026-06-15T13:57:01.6616877Z             {
2026-06-15T13:57:01.6617111Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6617287Z               "line": 456
2026-06-15T13:57:01.6617459Z             },
2026-06-15T13:57:01.6617626Z             {
2026-06-15T13:57:01.6617864Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6618033Z               "line": 475
2026-06-15T13:57:01.6618213Z             },
2026-06-15T13:57:01.6618399Z             {
2026-06-15T13:57:01.6618619Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T13:57:01.6618803Z               "line": 120
2026-06-15T13:57:01.6619052Z             },
2026-06-15T13:57:01.6619227Z             {
2026-06-15T13:57:01.6619451Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T13:57:01.6619633Z               "line": 163
2026-06-15T13:57:01.6619814Z             },
2026-06-15T13:57:01.6619981Z             {
2026-06-15T13:57:01.6620200Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:57:01.6620381Z               "line": 530
2026-06-15T13:57:01.6620554Z             },
2026-06-15T13:57:01.6620729Z             {
2026-06-15T13:57:01.6620939Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:57:01.6621114Z               "line": 616
2026-06-15T13:57:01.6621276Z             },
2026-06-15T13:57:01.6621450Z             {
2026-06-15T13:57:01.6621656Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:57:01.6621842Z               "line": 1006
2026-06-15T13:57:01.6622023Z             }
2026-06-15T13:57:01.6622190Z           ]
2026-06-15T13:57:01.6622361Z         }
2026-06-15T13:57:01.6622529Z       }
2026-06-15T13:57:01.6622704Z     },
2026-06-15T13:57:01.6622876Z     {
2026-06-15T13:57:01.6623058Z       "id": "REQ-NET-2",
2026-06-15T13:57:01.6623383Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-15T13:57:01.6623683Z       "requiredStages": [
2026-06-15T13:57:01.6623868Z         "impl"
2026-06-15T13:57:01.6624029Z       ],
2026-06-15T13:57:01.6624213Z       "stages": {
2026-06-15T13:57:01.6624380Z         "doc": {
2026-06-15T13:57:01.6624571Z           "complete": false,
2026-06-15T13:57:01.6624753Z           "evidence": []
2026-06-15T13:57:01.6624923Z         },
2026-06-15T13:57:01.6625105Z         "impl": {
2026-06-15T13:57:01.6625281Z           "complete": true,
2026-06-15T13:57:01.6625458Z           "evidence": [
2026-06-15T13:57:01.6625735Z             {
2026-06-15T13:57:01.6625979Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:57:01.6626158Z               "line": 57
2026-06-15T13:57:01.6626322Z             },
2026-06-15T13:57:01.6626496Z             {
2026-06-15T13:57:01.6626724Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6626908Z               "line": 71
2026-06-15T13:57:01.6627081Z             },
2026-06-15T13:57:01.6627257Z             {
2026-06-15T13:57:01.6627494Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6627676Z               "line": 81
2026-06-15T13:57:01.6627857Z             },
2026-06-15T13:57:01.6628024Z             {
2026-06-15T13:57:01.6628264Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6628448Z               "line": 159
2026-06-15T13:57:01.6628612Z             },
2026-06-15T13:57:01.6628782Z             {
2026-06-15T13:57:01.6629097Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6629293Z               "line": 175
2026-06-15T13:57:01.6629458Z             },
2026-06-15T13:57:01.6629631Z             {
2026-06-15T13:57:01.6629865Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:57:01.6630045Z               "line": 190
2026-06-15T13:57:01.6630212Z             }
2026-06-15T13:57:01.6630369Z           ]
2026-06-15T13:57:01.6630536Z         },
2026-06-15T13:57:01.6630712Z         "int": {
2026-06-15T13:57:01.6630903Z           "complete": false,
2026-06-15T13:57:01.6631076Z           "evidence": []
2026-06-15T13:57:01.6631246Z         },
2026-06-15T13:57:01.6631424Z         "unit": {
2026-06-15T13:57:01.6631599Z           "complete": true,
2026-06-15T13:57:01.6631775Z           "evidence": [
2026-06-15T13:57:01.6631949Z             {
2026-06-15T13:57:01.6632179Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:57:01.6632359Z               "line": 402
2026-06-15T13:57:01.6632521Z             }
2026-06-15T13:57:01.6632703Z           ]
2026-06-15T13:57:01.6632869Z         }
2026-06-15T13:57:01.6633047Z       }
2026-06-15T13:57:01.6633208Z     },
2026-06-15T13:57:01.6633385Z     {
2026-06-15T13:57:01.6633565Z       "id": "REQ-NET-3",
2026-06-15T13:57:01.6633885Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-15T13:57:01.6634076Z       "requiredStages": [
2026-06-15T13:57:01.6634243Z         "impl",
2026-06-15T13:57:01.6634428Z         "unit"
2026-06-15T13:57:01.6634589Z       ],
2026-06-15T13:57:01.6634773Z       "stages": {
2026-06-15T13:57:01.6634950Z         "doc": {
2026-06-15T13:57:01.6635131Z           "complete": false,
2026-06-15T13:57:01.6635308Z           "evidence": []
2026-06-15T13:57:01.6635478Z         },
2026-06-15T13:57:01.6635660Z         "impl": {
2026-06-15T13:57:01.6635841Z           "complete": true,
2026-06-15T13:57:01.6636023Z           "evidence": [
2026-06-15T13:57:01.6636185Z             {
2026-06-15T13:57:01.6636404Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:57:01.6636591Z               "line": 39
2026-06-15T13:57:01.6636761Z             },
2026-06-15T13:57:01.6636939Z             {
2026-06-15T13:57:01.6637156Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:57:01.6637350Z               "line": 182
2026-06-15T13:57:01.6637530Z             },
2026-06-15T13:57:01.6637697Z             {
2026-06-15T13:57:01.6637922Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:57:01.6638227Z               "line": 333
2026-06-15T13:57:01.6638427Z             },
2026-06-15T13:57:01.6638603Z             {
2026-06-15T13:57:01.6638819Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T13:57:01.6639071Z               "line": 36
2026-06-15T13:57:01.6639246Z             },
2026-06-15T13:57:01.6639420Z             {
2026-06-15T13:57:01.6639662Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.6639844Z               "line": 158
2026-06-15T13:57:01.6640008Z             },
2026-06-15T13:57:01.6640314Z             {
2026-06-15T13:57:01.6640548Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.6640725Z               "line": 212
2026-06-15T13:57:01.6640895Z             },
2026-06-15T13:57:01.6641049Z             {
2026-06-15T13:57:01.6641282Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.6641458Z               "line": 233
2026-06-15T13:57:01.6641631Z             },
2026-06-15T13:57:01.6641792Z             {
2026-06-15T13:57:01.6642023Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.6642197Z               "line": 291
2026-06-15T13:57:01.6642354Z             },
2026-06-15T13:57:01.6642523Z             {
2026-06-15T13:57:01.6642748Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.6642933Z               "line": 310
2026-06-15T13:57:01.6643105Z             },
2026-06-15T13:57:01.6643278Z             {
2026-06-15T13:57:01.6643505Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.6643692Z               "line": 348
2026-06-15T13:57:01.6643863Z             },
2026-06-15T13:57:01.6644025Z             {
2026-06-15T13:57:01.6644260Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.6644445Z               "line": 393
2026-06-15T13:57:01.6644617Z             },
2026-06-15T13:57:01.6644788Z             {
2026-06-15T13:57:01.6645021Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.6645207Z               "line": 406
2026-06-15T13:57:01.6645367Z             },
2026-06-15T13:57:01.6645539Z             {
2026-06-15T13:57:01.6645762Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:57:01.6645944Z               "line": 29
2026-06-15T13:57:01.6646115Z             },
2026-06-15T13:57:01.6646283Z             {
2026-06-15T13:57:01.6646516Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:57:01.6646687Z               "line": 72
2026-06-15T13:57:01.6646864Z             },
2026-06-15T13:57:01.6647040Z             {
2026-06-15T13:57:01.6647255Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:57:01.6647438Z               "line": 123
2026-06-15T13:57:01.6647597Z             }
2026-06-15T13:57:01.6647773Z           ]
2026-06-15T13:57:01.6647947Z         },
2026-06-15T13:57:01.6648115Z         "int": {
2026-06-15T13:57:01.6648300Z           "complete": false,
2026-06-15T13:57:01.6648487Z           "evidence": []
2026-06-15T13:57:01.6648663Z         },
2026-06-15T13:57:01.6648835Z         "unit": {
2026-06-15T13:57:01.6649097Z           "complete": true,
2026-06-15T13:57:01.6649278Z           "evidence": [
2026-06-15T13:57:01.6649450Z             {
2026-06-15T13:57:01.6649703Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T13:57:01.6649907Z               "line": 223
2026-06-15T13:57:01.6650084Z             },
2026-06-15T13:57:01.6650247Z             {
2026-06-15T13:57:01.6650474Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T13:57:01.6650670Z               "line": 351
2026-06-15T13:57:01.6650840Z             },
2026-06-15T13:57:01.6651013Z             {
2026-06-15T13:57:01.6651237Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T13:57:01.6651419Z               "line": 504
2026-06-15T13:57:01.6651581Z             },
2026-06-15T13:57:01.6651743Z             {
2026-06-15T13:57:01.6651967Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T13:57:01.6652249Z               "line": 93
2026-06-15T13:57:01.6652415Z             },
2026-06-15T13:57:01.6652583Z             {
2026-06-15T13:57:01.6652804Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T13:57:01.6652989Z               "line": 142
2026-06-15T13:57:01.6653160Z             },
2026-06-15T13:57:01.6653332Z             {
2026-06-15T13:57:01.6653556Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:57:01.6653736Z               "line": 315
2026-06-15T13:57:01.6653899Z             },
2026-06-15T13:57:01.6654176Z             {
2026-06-15T13:57:01.6654409Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:57:01.6654590Z               "line": 355
2026-06-15T13:57:01.6654758Z             },
2026-06-15T13:57:01.6654919Z             {
2026-06-15T13:57:01.6655145Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:57:01.6655329Z               "line": 494
2026-06-15T13:57:01.6655506Z             }
2026-06-15T13:57:01.6655671Z           ]
2026-06-15T13:57:01.6655847Z         }
2026-06-15T13:57:01.6656022Z       }
2026-06-15T13:57:01.6656189Z     },
2026-06-15T13:57:01.6656356Z     {
2026-06-15T13:57:01.6656537Z       "id": "REQ-NODE-IDENTITY",
2026-06-15T13:57:01.6656971Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-15T13:57:01.6657147Z       "requiredStages": [
2026-06-15T13:57:01.6657329Z         "impl",
2026-06-15T13:57:01.6657505Z         "unit"
2026-06-15T13:57:01.6657664Z       ],
2026-06-15T13:57:01.6657848Z       "stages": {
2026-06-15T13:57:01.6658021Z         "doc": {
2026-06-15T13:57:01.6658200Z           "complete": false,
2026-06-15T13:57:01.6658381Z           "evidence": []
2026-06-15T13:57:01.6658564Z         },
2026-06-15T13:57:01.6658742Z         "impl": {
2026-06-15T13:57:01.6658927Z           "complete": true,
2026-06-15T13:57:01.6659189Z           "evidence": [
2026-06-15T13:57:01.6659367Z             {
2026-06-15T13:57:01.6659605Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:57:01.6659785Z               "line": 60
2026-06-15T13:57:01.6659953Z             },
2026-06-15T13:57:01.6660129Z             {
2026-06-15T13:57:01.6660353Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:57:01.6660526Z               "line": 68
2026-06-15T13:57:01.6660696Z             },
2026-06-15T13:57:01.6660865Z             {
2026-06-15T13:57:01.6661086Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:57:01.6661268Z               "line": 86
2026-06-15T13:57:01.6661453Z             },
2026-06-15T13:57:01.6661626Z             {
2026-06-15T13:57:01.6661840Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:57:01.6662021Z               "line": 120
2026-06-15T13:57:01.6662193Z             },
2026-06-15T13:57:01.6662368Z             {
2026-06-15T13:57:01.6662593Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:57:01.6662780Z               "line": 127
2026-06-15T13:57:01.6662945Z             },
2026-06-15T13:57:01.6663109Z             {
2026-06-15T13:57:01.6663331Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:57:01.6663517Z               "line": 143
2026-06-15T13:57:01.6663695Z             },
2026-06-15T13:57:01.6663860Z             {
2026-06-15T13:57:01.6664082Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T13:57:01.6664263Z               "line": 16
2026-06-15T13:57:01.6664436Z             }
2026-06-15T13:57:01.6664592Z           ]
2026-06-15T13:57:01.6664774Z         },
2026-06-15T13:57:01.6664960Z         "int": {
2026-06-15T13:57:01.6665140Z           "complete": false,
2026-06-15T13:57:01.6665323Z           "evidence": []
2026-06-15T13:57:01.6665488Z         },
2026-06-15T13:57:01.6665666Z         "unit": {
2026-06-15T13:57:01.6665847Z           "complete": true,
2026-06-15T13:57:01.6666034Z           "evidence": [
2026-06-15T13:57:01.6666208Z             {
2026-06-15T13:57:01.6666548Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:57:01.6666726Z               "line": 199
2026-06-15T13:57:01.6666896Z             },
2026-06-15T13:57:01.6667074Z             {
2026-06-15T13:57:01.6667289Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:57:01.6667473Z               "line": 218
2026-06-15T13:57:01.6667651Z             },
2026-06-15T13:57:01.6667817Z             {
2026-06-15T13:57:01.6668046Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:57:01.6668224Z               "line": 234
2026-06-15T13:57:01.6668490Z             },
2026-06-15T13:57:01.6668652Z             {
2026-06-15T13:57:01.6668880Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:57:01.6669144Z               "line": 256
2026-06-15T13:57:01.6669312Z             },
2026-06-15T13:57:01.6669483Z             {
2026-06-15T13:57:01.6669707Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T13:57:01.6669893Z               "line": 124
2026-06-15T13:57:01.6670059Z             },
2026-06-15T13:57:01.6670232Z             {
2026-06-15T13:57:01.6670461Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T13:57:01.6670637Z               "line": 140
2026-06-15T13:57:01.6670814Z             },
2026-06-15T13:57:01.6670980Z             {
2026-06-15T13:57:01.6671204Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T13:57:01.6671382Z               "line": 155
2026-06-15T13:57:01.6671547Z             }
2026-06-15T13:57:01.6671722Z           ]
2026-06-15T13:57:01.6671890Z         }
2026-06-15T13:57:01.6672052Z       }
2026-06-15T13:57:01.6672214Z     },
2026-06-15T13:57:01.6672387Z     {
2026-06-15T13:57:01.6672571Z       "id": "REQ-NOTIF-1",
2026-06-15T13:57:01.6673215Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-15T13:57:01.6673411Z       "requiredStages": [
2026-06-15T13:57:01.6673592Z         "impl",
2026-06-15T13:57:01.6673768Z         "unit",
2026-06-15T13:57:01.6673938Z         "int"
2026-06-15T13:57:01.6674109Z       ],
2026-06-15T13:57:01.6674275Z       "stages": {
2026-06-15T13:57:01.6674457Z         "doc": {
2026-06-15T13:57:01.6674638Z           "complete": false,
2026-06-15T13:57:01.6674818Z           "evidence": []
2026-06-15T13:57:01.6674987Z         },
2026-06-15T13:57:01.6675152Z         "impl": {
2026-06-15T13:57:01.6675330Z           "complete": true,
2026-06-15T13:57:01.6675505Z           "evidence": [
2026-06-15T13:57:01.6675677Z             {
2026-06-15T13:57:01.6675921Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:57:01.6676106Z               "line": 514
2026-06-15T13:57:01.6676274Z             },
2026-06-15T13:57:01.6676435Z             {
2026-06-15T13:57:01.6676669Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6676844Z               "line": 30
2026-06-15T13:57:01.6677019Z             },
2026-06-15T13:57:01.6677204Z             {
2026-06-15T13:57:01.6677419Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6677605Z               "line": 69
2026-06-15T13:57:01.6677771Z             },
2026-06-15T13:57:01.6677944Z             {
2026-06-15T13:57:01.6678164Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6678348Z               "line": 93
2026-06-15T13:57:01.6678521Z             },
2026-06-15T13:57:01.6678687Z             {
2026-06-15T13:57:01.6678911Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6679165Z               "line": 107
2026-06-15T13:57:01.6679344Z             },
2026-06-15T13:57:01.6679506Z             {
2026-06-15T13:57:01.6679728Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6679904Z               "line": 142
2026-06-15T13:57:01.6680067Z             },
2026-06-15T13:57:01.6680238Z             {
2026-06-15T13:57:01.6680458Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6680745Z               "line": 187
2026-06-15T13:57:01.6680915Z             },
2026-06-15T13:57:01.6681078Z             {
2026-06-15T13:57:01.6681297Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6681468Z               "line": 258
2026-06-15T13:57:01.6681646Z             },
2026-06-15T13:57:01.6681821Z             {
2026-06-15T13:57:01.6682032Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6682215Z               "line": 372
2026-06-15T13:57:01.6682374Z             },
2026-06-15T13:57:01.6682559Z             {
2026-06-15T13:57:01.6682878Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6683065Z               "line": 479
2026-06-15T13:57:01.6683232Z             },
2026-06-15T13:57:01.6683408Z             {
2026-06-15T13:57:01.6683642Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:57:01.6683818Z               "line": 24
2026-06-15T13:57:01.6683986Z             },
2026-06-15T13:57:01.6688142Z             {
2026-06-15T13:57:01.6688461Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:57:01.6688647Z               "line": 34
2026-06-15T13:57:01.6688827Z             },
2026-06-15T13:57:01.6689063Z             {
2026-06-15T13:57:01.6689305Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:57:01.6689480Z               "line": 60
2026-06-15T13:57:01.6689649Z             },
2026-06-15T13:57:01.6689809Z             {
2026-06-15T13:57:01.6690048Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:57:01.6690245Z               "line": 82
2026-06-15T13:57:01.6690414Z             },
2026-06-15T13:57:01.6690574Z             {
2026-06-15T13:57:01.6690803Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:57:01.6690966Z               "line": 94
2026-06-15T13:57:01.6691141Z             },
2026-06-15T13:57:01.6691305Z             {
2026-06-15T13:57:01.6691532Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:57:01.6691719Z               "line": 96
2026-06-15T13:57:01.6691877Z             },
2026-06-15T13:57:01.6692047Z             {
2026-06-15T13:57:01.6692283Z               "path": "crates/spt-daemon/src/pump/notif.rs",
2026-06-15T13:57:01.6692463Z               "line": 44
2026-06-15T13:57:01.6692635Z             },
2026-06-15T13:57:01.6692795Z             {
2026-06-15T13:57:01.6693019Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T13:57:01.6693196Z               "line": 20
2026-06-15T13:57:01.6693367Z             },
2026-06-15T13:57:01.6693531Z             {
2026-06-15T13:57:01.6693758Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T13:57:01.6693931Z               "line": 30
2026-06-15T13:57:01.6694087Z             },
2026-06-15T13:57:01.6694259Z             {
2026-06-15T13:57:01.6694480Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T13:57:01.6694650Z               "line": 50
2026-06-15T13:57:01.6694819Z             },
2026-06-15T13:57:01.6694988Z             {
2026-06-15T13:57:01.6695206Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:57:01.6695386Z               "line": 28
2026-06-15T13:57:01.6695554Z             },
2026-06-15T13:57:01.6695715Z             {
2026-06-15T13:57:01.6695939Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:57:01.6696126Z               "line": 126
2026-06-15T13:57:01.6696296Z             },
2026-06-15T13:57:01.6696469Z             {
2026-06-15T13:57:01.6696688Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:57:01.6696878Z               "line": 161
2026-06-15T13:57:01.6697051Z             },
2026-06-15T13:57:01.6697227Z             {
2026-06-15T13:57:01.6697441Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:57:01.6697623Z               "line": 202
2026-06-15T13:57:01.6697784Z             },
2026-06-15T13:57:01.6697950Z             {
2026-06-15T13:57:01.6698158Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:57:01.6698473Z               "line": 213
2026-06-15T13:57:01.6698635Z             },
2026-06-15T13:57:01.6698797Z             {
2026-06-15T13:57:01.6699098Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:57:01.6699279Z               "line": 238
2026-06-15T13:57:01.6699441Z             },
2026-06-15T13:57:01.6699618Z             {
2026-06-15T13:57:01.6699836Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:57:01.6700018Z               "line": 261
2026-06-15T13:57:01.6700180Z             },
2026-06-15T13:57:01.6700347Z             {
2026-06-15T13:57:01.6700719Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.6700896Z               "line": 82
2026-06-15T13:57:01.6701062Z             }
2026-06-15T13:57:01.6701231Z           ]
2026-06-15T13:57:01.6701396Z         },
2026-06-15T13:57:01.6701564Z         "int": {
2026-06-15T13:57:01.6701744Z           "complete": true,
2026-06-15T13:57:01.6701935Z           "evidence": [
2026-06-15T13:57:01.6702102Z             {
2026-06-15T13:57:01.6702345Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:57:01.6702523Z               "line": 285
2026-06-15T13:57:01.6702689Z             },
2026-06-15T13:57:01.6702857Z             {
2026-06-15T13:57:01.6703082Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T13:57:01.6703260Z               "line": 102
2026-06-15T13:57:01.6703422Z             },
2026-06-15T13:57:01.6703599Z             {
2026-06-15T13:57:01.6703823Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6704008Z               "line": 615
2026-06-15T13:57:01.6704176Z             },
2026-06-15T13:57:01.6704348Z             {
2026-06-15T13:57:01.6704576Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6704754Z               "line": 1008
2026-06-15T13:57:01.6704929Z             }
2026-06-15T13:57:01.6705096Z           ]
2026-06-15T13:57:01.6705263Z         },
2026-06-15T13:57:01.6705425Z         "unit": {
2026-06-15T13:57:01.6705614Z           "complete": true,
2026-06-15T13:57:01.6705799Z           "evidence": [
2026-06-15T13:57:01.6705965Z             {
2026-06-15T13:57:01.6706184Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6706362Z               "line": 572
2026-06-15T13:57:01.6706542Z             },
2026-06-15T13:57:01.6706700Z             {
2026-06-15T13:57:01.6706924Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6707100Z               "line": 636
2026-06-15T13:57:01.6707263Z             },
2026-06-15T13:57:01.6707438Z             {
2026-06-15T13:57:01.6707649Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6707829Z               "line": 740
2026-06-15T13:57:01.6707992Z             },
2026-06-15T13:57:01.6708154Z             {
2026-06-15T13:57:01.6708373Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6708554Z               "line": 772
2026-06-15T13:57:01.6708728Z             },
2026-06-15T13:57:01.6708899Z             {
2026-06-15T13:57:01.6709205Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6709385Z               "line": 840
2026-06-15T13:57:01.6709553Z             },
2026-06-15T13:57:01.6709714Z             {
2026-06-15T13:57:01.6709934Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6710115Z               "line": 898
2026-06-15T13:57:01.6710272Z             },
2026-06-15T13:57:01.6710450Z             {
2026-06-15T13:57:01.6710673Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6710860Z               "line": 1173
2026-06-15T13:57:01.6711034Z             },
2026-06-15T13:57:01.6711196Z             {
2026-06-15T13:57:01.6711428Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:57:01.6711604Z               "line": 157
2026-06-15T13:57:01.6711781Z             },
2026-06-15T13:57:01.6711956Z             {
2026-06-15T13:57:01.6712172Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:57:01.6712453Z               "line": 250
2026-06-15T13:57:01.6712624Z             },
2026-06-15T13:57:01.6712797Z             {
2026-06-15T13:57:01.6713012Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:57:01.6713197Z               "line": 273
2026-06-15T13:57:01.6713370Z             },
2026-06-15T13:57:01.6713531Z             {
2026-06-15T13:57:01.6713760Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:57:01.6713934Z               "line": 355
2026-06-15T13:57:01.6714112Z             },
2026-06-15T13:57:01.6714374Z             {
2026-06-15T13:57:01.6714608Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:57:01.6714775Z               "line": 392
2026-06-15T13:57:01.6714961Z             },
2026-06-15T13:57:01.6715131Z             {
2026-06-15T13:57:01.6715361Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-15T13:57:01.6715552Z               "line": 131
2026-06-15T13:57:01.6715722Z             },
2026-06-15T13:57:01.6715881Z             {
2026-06-15T13:57:01.6716113Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T13:57:01.6716285Z               "line": 72
2026-06-15T13:57:01.6716463Z             },
2026-06-15T13:57:01.6716631Z             {
2026-06-15T13:57:01.6716854Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T13:57:01.6717031Z               "line": 97
2026-06-15T13:57:01.6717213Z             },
2026-06-15T13:57:01.6717388Z             {
2026-06-15T13:57:01.6717594Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:57:01.6717774Z               "line": 379
2026-06-15T13:57:01.6717946Z             },
2026-06-15T13:57:01.6718119Z             {
2026-06-15T13:57:01.6718342Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:57:01.6718519Z               "line": 417
2026-06-15T13:57:01.6718690Z             },
2026-06-15T13:57:01.6718848Z             {
2026-06-15T13:57:01.6719147Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:57:01.6719335Z               "line": 433
2026-06-15T13:57:01.6719508Z             },
2026-06-15T13:57:01.6719683Z             {
2026-06-15T13:57:01.6719898Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:57:01.6720080Z               "line": 472
2026-06-15T13:57:01.6720236Z             },
2026-06-15T13:57:01.6720418Z             {
2026-06-15T13:57:01.6720632Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:57:01.6720809Z               "line": 489
2026-06-15T13:57:01.6720990Z             },
2026-06-15T13:57:01.6721166Z             {
2026-06-15T13:57:01.6721387Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:57:01.6721566Z               "line": 517
2026-06-15T13:57:01.6721742Z             },
2026-06-15T13:57:01.6721916Z             {
2026-06-15T13:57:01.6722136Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:57:01.6722322Z               "line": 548
2026-06-15T13:57:01.6722484Z             },
2026-06-15T13:57:01.6722661Z             {
2026-06-15T13:57:01.6722884Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.6723061Z               "line": 621
2026-06-15T13:57:01.6723228Z             }
2026-06-15T13:57:01.6723399Z           ]
2026-06-15T13:57:01.6723577Z         }
2026-06-15T13:57:01.6723747Z       }
2026-06-15T13:57:01.6723911Z     },
2026-06-15T13:57:01.6724066Z     {
2026-06-15T13:57:01.6724244Z       "id": "REQ-NOTIF-2",
2026-06-15T13:57:01.6724724Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-15T13:57:01.6724925Z       "requiredStages": [
2026-06-15T13:57:01.6725100Z         "doc",
2026-06-15T13:57:01.6725268Z         "impl",
2026-06-15T13:57:01.6725434Z         "unit",
2026-06-15T13:57:01.6725601Z         "int"
2026-06-15T13:57:01.6725768Z       ],
2026-06-15T13:57:01.6725930Z       "stages": {
2026-06-15T13:57:01.6726107Z         "doc": {
2026-06-15T13:57:01.6726297Z           "complete": true,
2026-06-15T13:57:01.6726583Z           "evidence": [
2026-06-15T13:57:01.6726744Z             {
2026-06-15T13:57:01.6726938Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.6727114Z               "line": 453
2026-06-15T13:57:01.6727271Z             },
2026-06-15T13:57:01.6727448Z             {
2026-06-15T13:57:01.6727648Z               "path": "docs/MANIFEST.md",
2026-06-15T13:57:01.6727825Z               "line": 76
2026-06-15T13:57:01.6727996Z             }
2026-06-15T13:57:01.6728163Z           ]
2026-06-15T13:57:01.6728330Z         },
2026-06-15T13:57:01.6728616Z         "impl": {
2026-06-15T13:57:01.6728802Z           "complete": true,
2026-06-15T13:57:01.6729075Z           "evidence": [
2026-06-15T13:57:01.6729236Z             {
2026-06-15T13:57:01.6729455Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6729636Z               "line": 287
2026-06-15T13:57:01.6729809Z             },
2026-06-15T13:57:01.6729967Z             {
2026-06-15T13:57:01.6730191Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6730373Z               "line": 301
2026-06-15T13:57:01.6730539Z             },
2026-06-15T13:57:01.6730711Z             {
2026-06-15T13:57:01.6730935Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6731116Z               "line": 326
2026-06-15T13:57:01.6731275Z             },
2026-06-15T13:57:01.6731450Z             {
2026-06-15T13:57:01.6731688Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.6731861Z               "line": 199
2026-06-15T13:57:01.6732036Z             },
2026-06-15T13:57:01.6732202Z             {
2026-06-15T13:57:01.6732443Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.6732620Z               "line": 91
2026-06-15T13:57:01.6732790Z             },
2026-06-15T13:57:01.6732963Z             {
2026-06-15T13:57:01.6733168Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6733345Z               "line": 1963
2026-06-15T13:57:01.6733517Z             },
2026-06-15T13:57:01.6733692Z             {
2026-06-15T13:57:01.6733893Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6734078Z               "line": 2012
2026-06-15T13:57:01.6734250Z             },
2026-06-15T13:57:01.6734413Z             {
2026-06-15T13:57:01.6734622Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6734795Z               "line": 2091
2026-06-15T13:57:01.6734969Z             },
2026-06-15T13:57:01.6735141Z             {
2026-06-15T13:57:01.6735345Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6735537Z               "line": 2130
2026-06-15T13:57:01.6735699Z             }
2026-06-15T13:57:01.6735876Z           ]
2026-06-15T13:57:01.6736042Z         },
2026-06-15T13:57:01.6736214Z         "int": {
2026-06-15T13:57:01.6736396Z           "complete": true,
2026-06-15T13:57:01.6736581Z           "evidence": [
2026-06-15T13:57:01.6736744Z             {
2026-06-15T13:57:01.6736968Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6737153Z               "line": 741
2026-06-15T13:57:01.6737324Z             },
2026-06-15T13:57:01.6737494Z             {
2026-06-15T13:57:01.6737732Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6737908Z               "line": 1161
2026-06-15T13:57:01.6738075Z             }
2026-06-15T13:57:01.6738246Z           ]
2026-06-15T13:57:01.6738418Z         },
2026-06-15T13:57:01.6738590Z         "unit": {
2026-06-15T13:57:01.6738772Z           "complete": true,
2026-06-15T13:57:01.6739024Z           "evidence": [
2026-06-15T13:57:01.6739200Z             {
2026-06-15T13:57:01.6739419Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6739587Z               "line": 1022
2026-06-15T13:57:01.6739758Z             },
2026-06-15T13:57:01.6739926Z             {
2026-06-15T13:57:01.6740138Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6740314Z               "line": 1090
2026-06-15T13:57:01.6740590Z             },
2026-06-15T13:57:01.6740765Z             {
2026-06-15T13:57:01.6740961Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6741142Z               "line": 6708
2026-06-15T13:57:01.6741305Z             },
2026-06-15T13:57:01.6741476Z             {
2026-06-15T13:57:01.6741681Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6741859Z               "line": 6763
2026-06-15T13:57:01.6742038Z             }
2026-06-15T13:57:01.6742197Z           ]
2026-06-15T13:57:01.6742373Z         }
2026-06-15T13:57:01.6742540Z       }
2026-06-15T13:57:01.6742810Z     },
2026-06-15T13:57:01.6742980Z     {
2026-06-15T13:57:01.6743166Z       "id": "REQ-PAIR-1",
2026-06-15T13:57:01.6743370Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-15T13:57:01.6743543Z       "requiredStages": [
2026-06-15T13:57:01.6743719Z         "impl",
2026-06-15T13:57:01.6743890Z         "unit",
2026-06-15T13:57:01.6744068Z         "int"
2026-06-15T13:57:01.6744243Z       ],
2026-06-15T13:57:01.6744420Z       "stages": {
2026-06-15T13:57:01.6744601Z         "doc": {
2026-06-15T13:57:01.6744777Z           "complete": false,
2026-06-15T13:57:01.6744963Z           "evidence": []
2026-06-15T13:57:01.6745130Z         },
2026-06-15T13:57:01.6745307Z         "impl": {
2026-06-15T13:57:01.6745491Z           "complete": true,
2026-06-15T13:57:01.6745668Z           "evidence": [
2026-06-15T13:57:01.6745844Z             {
2026-06-15T13:57:01.6746092Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:57:01.6746264Z               "line": 27
2026-06-15T13:57:01.6746441Z             },
2026-06-15T13:57:01.6746617Z             {
2026-06-15T13:57:01.6746869Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:57:01.6747046Z               "line": 88
2026-06-15T13:57:01.6747223Z             },
2026-06-15T13:57:01.6747389Z             {
2026-06-15T13:57:01.6747629Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:57:01.6747808Z               "line": 110
2026-06-15T13:57:01.6747998Z             },
2026-06-15T13:57:01.6748191Z             {
2026-06-15T13:57:01.6748434Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:57:01.6748612Z               "line": 153
2026-06-15T13:57:01.6748777Z             },
2026-06-15T13:57:01.6749031Z             {
2026-06-15T13:57:01.6749260Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:57:01.6749436Z               "line": 182
2026-06-15T13:57:01.6749603Z             },
2026-06-15T13:57:01.6750195Z             {
2026-06-15T13:57:01.6750486Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:57:01.6750670Z               "line": 29
2026-06-15T13:57:01.6750842Z             },
2026-06-15T13:57:01.6751001Z             {
2026-06-15T13:57:01.6751278Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:57:01.6751451Z               "line": 31
2026-06-15T13:57:01.6751621Z             },
2026-06-15T13:57:01.6751803Z             {
2026-06-15T13:57:01.6752051Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:57:01.6752218Z               "line": 44
2026-06-15T13:57:01.6752385Z             },
2026-06-15T13:57:01.6752551Z             {
2026-06-15T13:57:01.6752795Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:57:01.6752971Z               "line": 171
2026-06-15T13:57:01.6753142Z             },
2026-06-15T13:57:01.6753318Z             {
2026-06-15T13:57:01.6753558Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:57:01.6753750Z               "line": 376
2026-06-15T13:57:01.6753915Z             }
2026-06-15T13:57:01.6754083Z           ]
2026-06-15T13:57:01.6754254Z         },
2026-06-15T13:57:01.6754427Z         "int": {
2026-06-15T13:57:01.6754608Z           "complete": true,
2026-06-15T13:57:01.6754784Z           "evidence": [
2026-06-15T13:57:01.6754947Z             {
2026-06-15T13:57:01.6755180Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6755523Z               "line": 576
2026-06-15T13:57:01.6755685Z             },
2026-06-15T13:57:01.6755868Z             {
2026-06-15T13:57:01.6756104Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6756281Z               "line": 793
2026-06-15T13:57:01.6756451Z             }
2026-06-15T13:57:01.6756620Z           ]
2026-06-15T13:57:01.6756794Z         },
2026-06-15T13:57:01.6756958Z         "unit": {
2026-06-15T13:57:01.6757144Z           "complete": true,
2026-06-15T13:57:01.6757424Z           "evidence": [
2026-06-15T13:57:01.6757601Z             {
2026-06-15T13:57:01.6757855Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:57:01.6758025Z               "line": 236
2026-06-15T13:57:01.6758203Z             },
2026-06-15T13:57:01.6758372Z             {
2026-06-15T13:57:01.6758623Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:57:01.6758795Z               "line": 349
2026-06-15T13:57:01.6759066Z             },
2026-06-15T13:57:01.6759238Z             {
2026-06-15T13:57:01.6759482Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:57:01.6759662Z               "line": 194
2026-06-15T13:57:01.6759820Z             },
2026-06-15T13:57:01.6759991Z             {
2026-06-15T13:57:01.6760221Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:57:01.6760407Z               "line": 216
2026-06-15T13:57:01.6760574Z             },
2026-06-15T13:57:01.6760736Z             {
2026-06-15T13:57:01.6761056Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:57:01.6761235Z               "line": 230
2026-06-15T13:57:01.6761425Z             },
2026-06-15T13:57:01.6761604Z             {
2026-06-15T13:57:01.6761857Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:57:01.6762063Z               "line": 242
2026-06-15T13:57:01.6762233Z             },
2026-06-15T13:57:01.6762406Z             {
2026-06-15T13:57:01.6762635Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:57:01.6762825Z               "line": 256
2026-06-15T13:57:01.6762998Z             },
2026-06-15T13:57:01.6763173Z             {
2026-06-15T13:57:01.6763401Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:57:01.6763580Z               "line": 270
2026-06-15T13:57:01.6763763Z             },
2026-06-15T13:57:01.6763935Z             {
2026-06-15T13:57:01.6764175Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:57:01.6764358Z               "line": 277
2026-06-15T13:57:01.6764529Z             },
2026-06-15T13:57:01.6764701Z             {
2026-06-15T13:57:01.6764939Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:57:01.6765124Z               "line": 295
2026-06-15T13:57:01.6765291Z             },
2026-06-15T13:57:01.6765468Z             {
2026-06-15T13:57:01.6765711Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:57:01.6765889Z               "line": 968
2026-06-15T13:57:01.6766055Z             },
2026-06-15T13:57:01.6766227Z             {
2026-06-15T13:57:01.6766461Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:57:01.6766631Z               "line": 1051
2026-06-15T13:57:01.6766803Z             },
2026-06-15T13:57:01.6766978Z             {
2026-06-15T13:57:01.6767213Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:57:01.6767399Z               "line": 1121
2026-06-15T13:57:01.6767566Z             },
2026-06-15T13:57:01.6767776Z             {
2026-06-15T13:57:01.6768033Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:57:01.6768256Z               "line": 1182
2026-06-15T13:57:01.6768415Z             },
2026-06-15T13:57:01.6768581Z             {
2026-06-15T13:57:01.6768823Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:57:01.6769160Z               "line": 1238
2026-06-15T13:57:01.6769503Z             },
2026-06-15T13:57:01.6769713Z             {
2026-06-15T13:57:01.6769955Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:57:01.6770132Z               "line": 1457
2026-06-15T13:57:01.6770314Z             }
2026-06-15T13:57:01.6770480Z           ]
2026-06-15T13:57:01.6770648Z         }
2026-06-15T13:57:01.6770823Z       }
2026-06-15T13:57:01.6770986Z     },
2026-06-15T13:57:01.6771148Z     {
2026-06-15T13:57:01.6771334Z       "id": "REQ-PAIR-2",
2026-06-15T13:57:01.6771593Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-15T13:57:01.6771895Z       "requiredStages": [],
2026-06-15T13:57:01.6772070Z       "stages": {
2026-06-15T13:57:01.6772250Z         "doc": {
2026-06-15T13:57:01.6772436Z           "complete": false,
2026-06-15T13:57:01.6772609Z           "evidence": []
2026-06-15T13:57:01.6772784Z         },
2026-06-15T13:57:01.6772947Z         "impl": {
2026-06-15T13:57:01.6773137Z           "complete": false,
2026-06-15T13:57:01.6773318Z           "evidence": []
2026-06-15T13:57:01.6773524Z         },
2026-06-15T13:57:01.6773705Z         "int": {
2026-06-15T13:57:01.6773892Z           "complete": false,
2026-06-15T13:57:01.6774072Z           "evidence": []
2026-06-15T13:57:01.6774240Z         },
2026-06-15T13:57:01.6774418Z         "unit": {
2026-06-15T13:57:01.6774594Z           "complete": false,
2026-06-15T13:57:01.6774779Z           "evidence": []
2026-06-15T13:57:01.6774951Z         }
2026-06-15T13:57:01.6775123Z       }
2026-06-15T13:57:01.6775289Z     },
2026-06-15T13:57:01.6775457Z     {
2026-06-15T13:57:01.6775637Z       "id": "REQ-PAIR-3",
2026-06-15T13:57:01.6775914Z       "title": "Fetch current pairing code from any paired node",
2026-06-15T13:57:01.6776106Z       "requiredStages": [
2026-06-15T13:57:01.6776271Z         "impl",
2026-06-15T13:57:01.6776454Z         "unit"
2026-06-15T13:57:01.6776629Z       ],
2026-06-15T13:57:01.6776801Z       "stages": {
2026-06-15T13:57:01.6776973Z         "doc": {
2026-06-15T13:57:01.6777167Z           "complete": false,
2026-06-15T13:57:01.6777353Z           "evidence": []
2026-06-15T13:57:01.6777520Z         },
2026-06-15T13:57:01.6777697Z         "impl": {
2026-06-15T13:57:01.6777891Z           "complete": true,
2026-06-15T13:57:01.6778068Z           "evidence": [
2026-06-15T13:57:01.6778244Z             {
2026-06-15T13:57:01.6778445Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6778627Z               "line": 2821
2026-06-15T13:57:01.6778793Z             },
2026-06-15T13:57:01.6779046Z             {
2026-06-15T13:57:01.6779266Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6779441Z               "line": 2890
2026-06-15T13:57:01.6779612Z             },
2026-06-15T13:57:01.6779777Z             {
2026-06-15T13:57:01.6779987Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6780157Z               "line": 3271
2026-06-15T13:57:01.6780330Z             },
2026-06-15T13:57:01.6780506Z             {
2026-06-15T13:57:01.6780706Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6780889Z               "line": 4516
2026-06-15T13:57:01.6781050Z             }
2026-06-15T13:57:01.6781227Z           ]
2026-06-15T13:57:01.6781403Z         },
2026-06-15T13:57:01.6781575Z         "int": {
2026-06-15T13:57:01.6781765Z           "complete": false,
2026-06-15T13:57:01.6781946Z           "evidence": []
2026-06-15T13:57:01.6782118Z         },
2026-06-15T13:57:01.6782289Z         "unit": {
2026-06-15T13:57:01.6782479Z           "complete": true,
2026-06-15T13:57:01.6782658Z           "evidence": [
2026-06-15T13:57:01.6782840Z             {
2026-06-15T13:57:01.6783044Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6783221Z               "line": 8378
2026-06-15T13:57:01.6783397Z             },
2026-06-15T13:57:01.6783569Z             {
2026-06-15T13:57:01.6783774Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6783950Z               "line": 8593
2026-06-15T13:57:01.6784236Z             },
2026-06-15T13:57:01.6784418Z             {
2026-06-15T13:57:01.6784617Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6784804Z               "line": 9195
2026-06-15T13:57:01.6784979Z             },
2026-06-15T13:57:01.6785154Z             {
2026-06-15T13:57:01.6785349Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6785530Z               "line": 9214
2026-06-15T13:57:01.6785707Z             },
2026-06-15T13:57:01.6785873Z             {
2026-06-15T13:57:01.6786074Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6786360Z               "line": 9238
2026-06-15T13:57:01.6786531Z             },
2026-06-15T13:57:01.6786708Z             {
2026-06-15T13:57:01.6786913Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6787093Z               "line": 9257
2026-06-15T13:57:01.6787262Z             },
2026-06-15T13:57:01.6787432Z             {
2026-06-15T13:57:01.6787629Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6787813Z               "line": 9270
2026-06-15T13:57:01.6787985Z             },
2026-06-15T13:57:01.6788161Z             {
2026-06-15T13:57:01.6788367Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6788543Z               "line": 9279
2026-06-15T13:57:01.6788719Z             }
2026-06-15T13:57:01.6788882Z           ]
2026-06-15T13:57:01.6789138Z         }
2026-06-15T13:57:01.6789305Z       }
2026-06-15T13:57:01.6789478Z     },
2026-06-15T13:57:01.6789653Z     {
2026-06-15T13:57:01.6789836Z       "id": "REQ-PAIR-4",
2026-06-15T13:57:01.6790043Z       "title": "Subnet naming on first pairing",
2026-06-15T13:57:01.6790243Z       "requiredStages": [
2026-06-15T13:57:01.6790422Z         "impl",
2026-06-15T13:57:01.6790595Z         "unit"
2026-06-15T13:57:01.6790761Z       ],
2026-06-15T13:57:01.6790937Z       "stages": {
2026-06-15T13:57:01.6791100Z         "doc": {
2026-06-15T13:57:01.6791285Z           "complete": false,
2026-06-15T13:57:01.6791468Z           "evidence": []
2026-06-15T13:57:01.6791643Z         },
2026-06-15T13:57:01.6791820Z         "impl": {
2026-06-15T13:57:01.6792005Z           "complete": true,
2026-06-15T13:57:01.6792196Z           "evidence": [
2026-06-15T13:57:01.6792359Z             {
2026-06-15T13:57:01.6792587Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:57:01.6792760Z               "line": 174
2026-06-15T13:57:01.6792938Z             }
2026-06-15T13:57:01.6793100Z           ]
2026-06-15T13:57:01.6793275Z         },
2026-06-15T13:57:01.6793448Z         "int": {
2026-06-15T13:57:01.6793628Z           "complete": false,
2026-06-15T13:57:01.6793814Z           "evidence": []
2026-06-15T13:57:01.6793982Z         },
2026-06-15T13:57:01.6794157Z         "unit": {
2026-06-15T13:57:01.6794339Z           "complete": true,
2026-06-15T13:57:01.6794525Z           "evidence": [
2026-06-15T13:57:01.6794697Z             {
2026-06-15T13:57:01.6794946Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:57:01.6795130Z               "line": 1294
2026-06-15T13:57:01.6795298Z             }
2026-06-15T13:57:01.6795472Z           ]
2026-06-15T13:57:01.6795644Z         }
2026-06-15T13:57:01.6795808Z       }
2026-06-15T13:57:01.6795986Z     },
2026-06-15T13:57:01.6796156Z     {
2026-06-15T13:57:01.6796333Z       "id": "REQ-PAIR-5",
2026-06-15T13:57:01.6796878Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-15T13:57:01.6797077Z       "requiredStages": [
2026-06-15T13:57:01.6797249Z         "impl",
2026-06-15T13:57:01.6797430Z         "unit",
2026-06-15T13:57:01.6797611Z         "int"
2026-06-15T13:57:01.6797779Z       ],
2026-06-15T13:57:01.6797954Z       "stages": {
2026-06-15T13:57:01.6798127Z         "doc": {
2026-06-15T13:57:01.6798320Z           "complete": false,
2026-06-15T13:57:01.6798502Z           "evidence": []
2026-06-15T13:57:01.6798678Z         },
2026-06-15T13:57:01.6798855Z         "impl": {
2026-06-15T13:57:01.6799113Z           "complete": true,
2026-06-15T13:57:01.6799408Z           "evidence": [
2026-06-15T13:57:01.6799575Z             {
2026-06-15T13:57:01.6799828Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:57:01.6800009Z               "line": 44
2026-06-15T13:57:01.6800180Z             },
2026-06-15T13:57:01.6800352Z             {
2026-06-15T13:57:01.6800594Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:57:01.6800775Z               "line": 96
2026-06-15T13:57:01.6800949Z             },
2026-06-15T13:57:01.6801117Z             {
2026-06-15T13:57:01.6801460Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:57:01.6801636Z               "line": 107
2026-06-15T13:57:01.6801813Z             },
2026-06-15T13:57:01.6801975Z             {
2026-06-15T13:57:01.6802217Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:57:01.6802394Z               "line": 124
2026-06-15T13:57:01.6802570Z             },
2026-06-15T13:57:01.6802742Z             {
2026-06-15T13:57:01.6802987Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:57:01.6803171Z               "line": 155
2026-06-15T13:57:01.6803334Z             },
2026-06-15T13:57:01.6803508Z             {
2026-06-15T13:57:01.6803745Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:57:01.6803926Z               "line": 195
2026-06-15T13:57:01.6804093Z             },
2026-06-15T13:57:01.6804256Z             {
2026-06-15T13:57:01.6804498Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:57:01.6804680Z               "line": 251
2026-06-15T13:57:01.6804842Z             },
2026-06-15T13:57:01.6805009Z             {
2026-06-15T13:57:01.6805271Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T13:57:01.6805452Z               "line": 33
2026-06-15T13:57:01.6805619Z             },
2026-06-15T13:57:01.6805791Z             {
2026-06-15T13:57:01.6806051Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T13:57:01.6806246Z               "line": 45
2026-06-15T13:57:01.6806411Z             },
2026-06-15T13:57:01.6806580Z             {
2026-06-15T13:57:01.6806842Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T13:57:01.6807012Z               "line": 59
2026-06-15T13:57:01.6807180Z             },
2026-06-15T13:57:01.6807355Z             {
2026-06-15T13:57:01.6807595Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:57:01.6807767Z               "line": 376
2026-06-15T13:57:01.6807933Z             }
2026-06-15T13:57:01.6808115Z           ]
2026-06-15T13:57:01.6808281Z         },
2026-06-15T13:57:01.6808467Z         "int": {
2026-06-15T13:57:01.6808644Z           "complete": true,
2026-06-15T13:57:01.6808820Z           "evidence": [
2026-06-15T13:57:01.6809057Z             {
2026-06-15T13:57:01.6809300Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6809482Z               "line": 793
2026-06-15T13:57:01.6809649Z             },
2026-06-15T13:57:01.6809825Z             {
2026-06-15T13:57:01.6810064Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:57:01.6810244Z               "line": 342
2026-06-15T13:57:01.6810407Z             }
2026-06-15T13:57:01.6810569Z           ]
2026-06-15T13:57:01.6810750Z         },
2026-06-15T13:57:01.6810917Z         "unit": {
2026-06-15T13:57:01.6811107Z           "complete": true,
2026-06-15T13:57:01.6811283Z           "evidence": [
2026-06-15T13:57:01.6811462Z             {
2026-06-15T13:57:01.6811697Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:57:01.6811876Z               "line": 293
2026-06-15T13:57:01.6815549Z             },
2026-06-15T13:57:01.6815770Z             {
2026-06-15T13:57:01.6816042Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:57:01.6816221Z               "line": 304
2026-06-15T13:57:01.6816400Z             },
2026-06-15T13:57:01.6816560Z             {
2026-06-15T13:57:01.6817010Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:57:01.6817201Z               "line": 406
2026-06-15T13:57:01.6817369Z             },
2026-06-15T13:57:01.6817539Z             {
2026-06-15T13:57:01.6817806Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T13:57:01.6817984Z               "line": 72
2026-06-15T13:57:01.6818145Z             },
2026-06-15T13:57:01.6818303Z             {
2026-06-15T13:57:01.6818569Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T13:57:01.6818851Z               "line": 82
2026-06-15T13:57:01.6819108Z             },
2026-06-15T13:57:01.6819267Z             {
2026-06-15T13:57:01.6819526Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T13:57:01.6819704Z               "line": 100
2026-06-15T13:57:01.6819874Z             },
2026-06-15T13:57:01.6820038Z             {
2026-06-15T13:57:01.6820295Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T13:57:01.6820480Z               "line": 110
2026-06-15T13:57:01.6820648Z             },
2026-06-15T13:57:01.6820814Z             {
2026-06-15T13:57:01.6821076Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T13:57:01.6821249Z               "line": 125
2026-06-15T13:57:01.6821415Z             },
2026-06-15T13:57:01.6821573Z             {
2026-06-15T13:57:01.6821810Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:57:01.6821975Z               "line": 1044
2026-06-15T13:57:01.6822156Z             },
2026-06-15T13:57:01.6822332Z             {
2026-06-15T13:57:01.6822556Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:57:01.6822732Z               "line": 1110
2026-06-15T13:57:01.6822890Z             },
2026-06-15T13:57:01.6823056Z             {
2026-06-15T13:57:01.6823276Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:57:01.6823458Z               "line": 1357
2026-06-15T13:57:01.6823629Z             }
2026-06-15T13:57:01.6823782Z           ]
2026-06-15T13:57:01.6823957Z         }
2026-06-15T13:57:01.6824116Z       }
2026-06-15T13:57:01.6824291Z     },
2026-06-15T13:57:01.6824450Z     {
2026-06-15T13:57:01.6824634Z       "id": "REQ-PAIR-6",
2026-06-15T13:57:01.6825171Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-15T13:57:01.6825347Z       "requiredStages": [
2026-06-15T13:57:01.6825523Z         "impl",
2026-06-15T13:57:01.6825686Z         "unit"
2026-06-15T13:57:01.6825866Z       ],
2026-06-15T13:57:01.6826039Z       "stages": {
2026-06-15T13:57:01.6826205Z         "doc": {
2026-06-15T13:57:01.6826396Z           "complete": false,
2026-06-15T13:57:01.6826563Z           "evidence": []
2026-06-15T13:57:01.6826739Z         },
2026-06-15T13:57:01.6826907Z         "impl": {
2026-06-15T13:57:01.6827091Z           "complete": true,
2026-06-15T13:57:01.6827267Z           "evidence": [
2026-06-15T13:57:01.6827441Z             {
2026-06-15T13:57:01.6827652Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6827823Z               "line": 2890
2026-06-15T13:57:01.6828000Z             },
2026-06-15T13:57:01.6828161Z             {
2026-06-15T13:57:01.6828381Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6828563Z               "line": 3271
2026-06-15T13:57:01.6828738Z             },
2026-06-15T13:57:01.6828911Z             {
2026-06-15T13:57:01.6829202Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.6829377Z               "line": 18
2026-06-15T13:57:01.6829536Z             },
2026-06-15T13:57:01.6829711Z             {
2026-06-15T13:57:01.6829921Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.6830101Z               "line": 49
2026-06-15T13:57:01.6830269Z             },
2026-06-15T13:57:01.6830430Z             {
2026-06-15T13:57:01.6830644Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.6830931Z               "line": 318
2026-06-15T13:57:01.6831108Z             }
2026-06-15T13:57:01.6831279Z           ]
2026-06-15T13:57:01.6831442Z         },
2026-06-15T13:57:01.6831608Z         "int": {
2026-06-15T13:57:01.6831790Z           "complete": false,
2026-06-15T13:57:01.6831966Z           "evidence": []
2026-06-15T13:57:01.6832133Z         },
2026-06-15T13:57:01.6832313Z         "unit": {
2026-06-15T13:57:01.6832493Z           "complete": true,
2026-06-15T13:57:01.6832667Z           "evidence": [
2026-06-15T13:57:01.6832844Z             {
2026-06-15T13:57:01.6833169Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6833351Z               "line": 9292
2026-06-15T13:57:01.6833516Z             },
2026-06-15T13:57:01.6833679Z             {
2026-06-15T13:57:01.6833883Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6834061Z               "line": 9309
2026-06-15T13:57:01.6834231Z             },
2026-06-15T13:57:01.6834394Z             {
2026-06-15T13:57:01.6834610Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.6834784Z               "line": 383
2026-06-15T13:57:01.6834958Z             },
2026-06-15T13:57:01.6835132Z             {
2026-06-15T13:57:01.6835341Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:57:01.6835516Z               "line": 392
2026-06-15T13:57:01.6835683Z             }
2026-06-15T13:57:01.6835840Z           ]
2026-06-15T13:57:01.6836002Z         }
2026-06-15T13:57:01.6836174Z       }
2026-06-15T13:57:01.6836351Z     },
2026-06-15T13:57:01.6836508Z     {
2026-06-15T13:57:01.6836704Z       "id": "REQ-PAIR-7",
2026-06-15T13:57:01.6837003Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-15T13:57:01.6837195Z       "requiredStages": [],
2026-06-15T13:57:01.6837366Z       "stages": {
2026-06-15T13:57:01.6837539Z         "doc": {
2026-06-15T13:57:01.6837728Z           "complete": false,
2026-06-15T13:57:01.6837904Z           "evidence": []
2026-06-15T13:57:01.6838073Z         },
2026-06-15T13:57:01.6838251Z         "impl": {
2026-06-15T13:57:01.6838435Z           "complete": false,
2026-06-15T13:57:01.6838608Z           "evidence": []
2026-06-15T13:57:01.6838779Z         },
2026-06-15T13:57:01.6839031Z         "int": {
2026-06-15T13:57:01.6839208Z           "complete": false,
2026-06-15T13:57:01.6839389Z           "evidence": []
2026-06-15T13:57:01.6839546Z         },
2026-06-15T13:57:01.6839729Z         "unit": {
2026-06-15T13:57:01.6839904Z           "complete": false,
2026-06-15T13:57:01.6840082Z           "evidence": []
2026-06-15T13:57:01.6840266Z         }
2026-06-15T13:57:01.6840421Z       }
2026-06-15T13:57:01.6840595Z     },
2026-06-15T13:57:01.6840752Z     {
2026-06-15T13:57:01.6840933Z       "id": "REQ-PAIR-8",
2026-06-15T13:57:01.6843133Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-15T13:57:01.6843339Z       "requiredStages": [
2026-06-15T13:57:01.6843509Z         "impl",
2026-06-15T13:57:01.6843672Z         "unit"
2026-06-15T13:57:01.6843842Z       ],
2026-06-15T13:57:01.6844006Z       "stages": {
2026-06-15T13:57:01.6844182Z         "doc": {
2026-06-15T13:57:01.6844363Z           "complete": false,
2026-06-15T13:57:01.6844535Z           "evidence": []
2026-06-15T13:57:01.6844716Z         },
2026-06-15T13:57:01.6844888Z         "impl": {
2026-06-15T13:57:01.6845078Z           "complete": true,
2026-06-15T13:57:01.6845255Z           "evidence": [
2026-06-15T13:57:01.6845416Z             {
2026-06-15T13:57:01.6845655Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.6845821Z               "line": 577
2026-06-15T13:57:01.6845991Z             },
2026-06-15T13:57:01.6846286Z             {
2026-06-15T13:57:01.6846530Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T13:57:01.6846705Z               "line": 22
2026-06-15T13:57:01.6846878Z             },
2026-06-15T13:57:01.6847058Z             {
2026-06-15T13:57:01.6847292Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T13:57:01.6847465Z               "line": 76
2026-06-15T13:57:01.6847621Z             },
2026-06-15T13:57:01.6847794Z             {
2026-06-15T13:57:01.6848037Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T13:57:01.6848321Z               "line": 127
2026-06-15T13:57:01.6848492Z             }
2026-06-15T13:57:01.6848656Z           ]
2026-06-15T13:57:01.6848839Z         },
2026-06-15T13:57:01.6849106Z         "int": {
2026-06-15T13:57:01.6849300Z           "complete": false,
2026-06-15T13:57:01.6849478Z           "evidence": []
2026-06-15T13:57:01.6849655Z         },
2026-06-15T13:57:01.6849831Z         "unit": {
2026-06-15T13:57:01.6850017Z           "complete": true,
2026-06-15T13:57:01.6850202Z           "evidence": [
2026-06-15T13:57:01.6850370Z             {
2026-06-15T13:57:01.6850623Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T13:57:01.6850798Z               "line": 183
2026-06-15T13:57:01.6850971Z             },
2026-06-15T13:57:01.6851150Z             {
2026-06-15T13:57:01.6851389Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T13:57:01.6851565Z               "line": 195
2026-06-15T13:57:01.6851723Z             },
2026-06-15T13:57:01.6851899Z             {
2026-06-15T13:57:01.6852132Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T13:57:01.6852318Z               "line": 211
2026-06-15T13:57:01.6852485Z             },
2026-06-15T13:57:01.6852652Z             {
2026-06-15T13:57:01.6852887Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T13:57:01.6853057Z               "line": 227
2026-06-15T13:57:01.6853221Z             }
2026-06-15T13:57:01.6853381Z           ]
2026-06-15T13:57:01.6853548Z         }
2026-06-15T13:57:01.6853721Z       }
2026-06-15T13:57:01.6853889Z     },
2026-06-15T13:57:01.6854055Z     {
2026-06-15T13:57:01.6854237Z       "id": "REQ-PRES-1",
2026-06-15T13:57:01.6856447Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-15T13:57:01.6856650Z       "requiredStages": [
2026-06-15T13:57:01.6856828Z         "impl",
2026-06-15T13:57:01.6856998Z         "unit",
2026-06-15T13:57:01.6857166Z         "int"
2026-06-15T13:57:01.6857338Z       ],
2026-06-15T13:57:01.6857509Z       "stages": {
2026-06-15T13:57:01.6857686Z         "doc": {
2026-06-15T13:57:01.6857867Z           "complete": true,
2026-06-15T13:57:01.6858053Z           "evidence": [
2026-06-15T13:57:01.6858224Z             {
2026-06-15T13:57:01.6858424Z               "path": "docs/DEFERRED.md",
2026-06-15T13:57:01.6858602Z               "line": 11
2026-06-15T13:57:01.6858767Z             }
2026-06-15T13:57:01.6859150Z           ]
2026-06-15T13:57:01.6859328Z         },
2026-06-15T13:57:01.6859498Z         "impl": {
2026-06-15T13:57:01.6859685Z           "complete": true,
2026-06-15T13:57:01.6859856Z           "evidence": [
2026-06-15T13:57:01.6860033Z             {
2026-06-15T13:57:01.6860272Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:57:01.6860452Z               "line": 515
2026-06-15T13:57:01.6860629Z             },
2026-06-15T13:57:01.6860800Z             {
2026-06-15T13:57:01.6861029Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:57:01.6861197Z               "line": 567
2026-06-15T13:57:01.6861493Z             },
2026-06-15T13:57:01.6861667Z             {
2026-06-15T13:57:01.6861892Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6862067Z               "line": 188
2026-06-15T13:57:01.6862230Z             },
2026-06-15T13:57:01.6862406Z             {
2026-06-15T13:57:01.6862626Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6862808Z               "line": 214
2026-06-15T13:57:01.6862978Z             },
2026-06-15T13:57:01.6863142Z             {
2026-06-15T13:57:01.6863365Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T13:57:01.6863665Z               "line": 28
2026-06-15T13:57:01.6863842Z             },
2026-06-15T13:57:01.6864007Z             {
2026-06-15T13:57:01.6864234Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T13:57:01.6864415Z               "line": 105
2026-06-15T13:57:01.6864582Z             },
2026-06-15T13:57:01.6864754Z             {
2026-06-15T13:57:01.6864972Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T13:57:01.6865164Z               "line": 161
2026-06-15T13:57:01.6865331Z             },
2026-06-15T13:57:01.6865498Z             {
2026-06-15T13:57:01.6865722Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T13:57:01.6865903Z               "line": 180
2026-06-15T13:57:01.6866065Z             },
2026-06-15T13:57:01.6866236Z             {
2026-06-15T13:57:01.6866475Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6866653Z               "line": 415
2026-06-15T13:57:01.6866841Z             },
2026-06-15T13:57:01.6867017Z             {
2026-06-15T13:57:01.6867249Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.6867416Z               "line": 289
2026-06-15T13:57:01.6867588Z             },
2026-06-15T13:57:01.6867759Z             {
2026-06-15T13:57:01.6867983Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.6868159Z               "line": 336
2026-06-15T13:57:01.6868331Z             },
2026-06-15T13:57:01.6868493Z             {
2026-06-15T13:57:01.6868727Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.6868909Z               "line": 362
2026-06-15T13:57:01.6869147Z             },
2026-06-15T13:57:01.6869323Z             {
2026-06-15T13:57:01.6869550Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.6869724Z               "line": 100
2026-06-15T13:57:01.6869893Z             }
2026-06-15T13:57:01.6870068Z           ]
2026-06-15T13:57:01.6870240Z         },
2026-06-15T13:57:01.6870416Z         "int": {
2026-06-15T13:57:01.6870588Z           "complete": true,
2026-06-15T13:57:01.6870775Z           "evidence": [
2026-06-15T13:57:01.6870951Z             {
2026-06-15T13:57:01.6871184Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:57:01.6871356Z               "line": 559
2026-06-15T13:57:01.6871518Z             },
2026-06-15T13:57:01.6871690Z             {
2026-06-15T13:57:01.6871928Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6872105Z               "line": 678
2026-06-15T13:57:01.6872284Z             },
2026-06-15T13:57:01.6872443Z             {
2026-06-15T13:57:01.6872675Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6872853Z               "line": 1071
2026-06-15T13:57:01.6873029Z             }
2026-06-15T13:57:01.6873200Z           ]
2026-06-15T13:57:01.6873363Z         },
2026-06-15T13:57:01.6873543Z         "unit": {
2026-06-15T13:57:01.6873721Z           "complete": true,
2026-06-15T13:57:01.6873905Z           "evidence": [
2026-06-15T13:57:01.6874069Z             {
2026-06-15T13:57:01.6874288Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.6874458Z               "line": 674
2026-06-15T13:57:01.6874624Z             },
2026-06-15T13:57:01.6874799Z             {
2026-06-15T13:57:01.6875023Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T13:57:01.6875324Z               "line": 238
2026-06-15T13:57:01.6875495Z             },
2026-06-15T13:57:01.6875667Z             {
2026-06-15T13:57:01.6875896Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T13:57:01.6876077Z               "line": 269
2026-06-15T13:57:01.6876249Z             },
2026-06-15T13:57:01.6876410Z             {
2026-06-15T13:57:01.6876630Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T13:57:01.6876811Z               "line": 305
2026-06-15T13:57:01.6876982Z             },
2026-06-15T13:57:01.6877146Z             {
2026-06-15T13:57:01.6877709Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T13:57:01.6877891Z               "line": 336
2026-06-15T13:57:01.6878061Z             },
2026-06-15T13:57:01.6878229Z             {
2026-06-15T13:57:01.6878473Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.6878657Z               "line": 1165
2026-06-15T13:57:01.6878830Z             },
2026-06-15T13:57:01.6879087Z             {
2026-06-15T13:57:01.6879316Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.6879498Z               "line": 1131
2026-06-15T13:57:01.6879678Z             }
2026-06-15T13:57:01.6879841Z           ]
2026-06-15T13:57:01.6880015Z         }
2026-06-15T13:57:01.6880190Z       }
2026-06-15T13:57:01.6880347Z     },
2026-06-15T13:57:01.6880524Z     {
2026-06-15T13:57:01.6880700Z       "id": "REQ-RC-1",
2026-06-15T13:57:01.6884056Z       "title": "`spt rc <id>` — user CLI attaching a local terminal to a broker-held PTY, reusing the cross-node attach machinery (attach.rs request_attach → send_attach_input pump, spt-net AttachRecord codec); local attach is the degenerate single-node case of the cross-node path (rides REQ-TERM-3 byte-stream streaming). Read-only `--view` (watch, no stdin forwarded). Clean detach that does NOT terminate the broker-held session (KNOWN-HAZARDS: PTY ownership stays with the broker; no termination on detach). Explicit detach keybind that cannot collide with harness passthrough input (legacy capsule used a ctrl-b prefix); documented. ConPTY DSR auto-answer in the attach reader (hazard 5.5).",
2026-06-15T13:57:01.6884262Z       "requiredStages": [
2026-06-15T13:57:01.6884428Z         "impl",
2026-06-15T13:57:01.6884610Z         "unit",
2026-06-15T13:57:01.6884770Z         "int"
2026-06-15T13:57:01.6884943Z       ],
2026-06-15T13:57:01.6885122Z       "stages": {
2026-06-15T13:57:01.6885294Z         "doc": {
2026-06-15T13:57:01.6885488Z           "complete": false,
2026-06-15T13:57:01.6885664Z           "evidence": []
2026-06-15T13:57:01.6885850Z         },
2026-06-15T13:57:01.6886021Z         "impl": {
2026-06-15T13:57:01.6886213Z           "complete": true,
2026-06-15T13:57:01.6886398Z           "evidence": [
2026-06-15T13:57:01.6886565Z             {
2026-06-15T13:57:01.6886800Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.6886975Z               "line": 895
2026-06-15T13:57:01.6887148Z             },
2026-06-15T13:57:01.6887323Z             {
2026-06-15T13:57:01.6887547Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.6887730Z               "line": 1168
2026-06-15T13:57:01.6887900Z             },
2026-06-15T13:57:01.6888071Z             {
2026-06-15T13:57:01.6888297Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.6888475Z               "line": 816
2026-06-15T13:57:01.6888650Z             },
2026-06-15T13:57:01.6888828Z             {
2026-06-15T13:57:01.6889132Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.6889328Z               "line": 850
2026-06-15T13:57:01.6889499Z             },
2026-06-15T13:57:01.6889667Z             {
2026-06-15T13:57:01.6889880Z               "path": "crates/spt/src/rc.rs",
2026-06-15T13:57:01.6890058Z               "line": 22
2026-06-15T13:57:01.6890215Z             },
2026-06-15T13:57:01.6890391Z             {
2026-06-15T13:57:01.6890590Z               "path": "crates/spt/src/rc.rs",
2026-06-15T13:57:01.6890883Z               "line": 181
2026-06-15T13:57:01.6891056Z             }
2026-06-15T13:57:01.6891232Z           ]
2026-06-15T13:57:01.6891404Z         },
2026-06-15T13:57:01.6891575Z         "int": {
2026-06-15T13:57:01.6891765Z           "complete": true,
2026-06-15T13:57:01.6891943Z           "evidence": [
2026-06-15T13:57:01.6892113Z             {
2026-06-15T13:57:01.6892347Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:57:01.6892524Z               "line": 252
2026-06-15T13:57:01.6892700Z             },
2026-06-15T13:57:01.6892868Z             {
2026-06-15T13:57:01.6893207Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:57:01.6893386Z               "line": 279
2026-06-15T13:57:01.6893553Z             },
2026-06-15T13:57:01.6893714Z             {
2026-06-15T13:57:01.6893944Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:57:01.6894125Z               "line": 404
2026-06-15T13:57:01.6894292Z             }
2026-06-15T13:57:01.6894479Z           ]
2026-06-15T13:57:01.6894645Z         },
2026-06-15T13:57:01.6894817Z         "unit": {
2026-06-15T13:57:01.6894997Z           "complete": true,
2026-06-15T13:57:01.6895170Z           "evidence": [
2026-06-15T13:57:01.6895331Z             {
2026-06-15T13:57:01.6895555Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.6895735Z               "line": 1098
2026-06-15T13:57:01.6895891Z             },
2026-06-15T13:57:01.6896067Z             {
2026-06-15T13:57:01.6896271Z               "path": "crates/spt/src/rc.rs",
2026-06-15T13:57:01.6896463Z               "line": 421
2026-06-15T13:57:01.6896634Z             },
2026-06-15T13:57:01.6896806Z             {
2026-06-15T13:57:01.6897017Z               "path": "crates/spt/src/rc.rs",
2026-06-15T13:57:01.6897197Z               "line": 450
2026-06-15T13:57:01.6897364Z             },
2026-06-15T13:57:01.6897540Z             {
2026-06-15T13:57:01.6897746Z               "path": "crates/spt/src/rc.rs",
2026-06-15T13:57:01.6897932Z               "line": 463
2026-06-15T13:57:01.6898094Z             }
2026-06-15T13:57:01.6898266Z           ]
2026-06-15T13:57:01.6898427Z         }
2026-06-15T13:57:01.6898603Z       }
2026-06-15T13:57:01.6898777Z     },
2026-06-15T13:57:01.6899044Z     {
2026-06-15T13:57:01.6899244Z       "id": "REQ-RCVIEW-1",
2026-06-15T13:57:01.6906503Z       "title": "Remote-attach controller/viewer model (CONTEXT.md:317): a session's broker OutputLog serves ONE interactive controller (input + EXCLUSIVE PTY resize; its viewport sets the size, sent on attach + every window change via crossterm Event::Resize) plus ANY NUMBER of read-only `--view` attachers (output-only, no input, no resize; client-side letterbox — center+pad when larger, clip+1-line indicator when smaller; only the local ctrl-b d detach chord). Attach intent is three-valued (`Viewer | Control | Take`, wire-default Control): Control to a FREE endpoint becomes controller, Control to a CONTROLLED endpoint is REFUSED with guidance (`--view`/`--take`) — never auto-viewer, never silent-displace. Wire adds (additive, N-1 skip-unknown): `Request.intent`, `Resize{rows,cols}` (controller-only), `Size{rows,cols}` (→viewer), `Displaced{by}` (→displaced controller). The brain-resume cursor (delivered_through, ADR-0018) tracks the CONTROLLER ONLY; viewers replay from their own from_seq and never move it. Dormancy keys on the controller ONLY: controller attach wakes / controller detach goes dormant (even with viewers present); viewer attach/detach is wake-neutral and may watch a dormant endpoint as-is. v1: viewing is gated identically to driving — a viewer runs the same access_check(Unsolicited) as a controller (watching reveals full session contents = a real disclosure); a lighter distinct watch-gate is deferred to cross-subnet/finer-consent (CONTEXT.md:317 'driving ≠ watching' = the future seam).",
2026-06-15T13:57:01.6906718Z       "requiredStages": [
2026-06-15T13:57:01.6906884Z         "doc",
2026-06-15T13:57:01.6907061Z         "impl",
2026-06-15T13:57:01.6907357Z         "unit",
2026-06-15T13:57:01.6907523Z         "int"
2026-06-15T13:57:01.6907695Z       ],
2026-06-15T13:57:01.6907867Z       "stages": {
2026-06-15T13:57:01.6908048Z         "doc": {
2026-06-15T13:57:01.6908230Z           "complete": true,
2026-06-15T13:57:01.6908406Z           "evidence": [
2026-06-15T13:57:01.6908578Z             {
2026-06-15T13:57:01.6908777Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.6909034Z               "line": 322
2026-06-15T13:57:01.6909196Z             }
2026-06-15T13:57:01.6909375Z           ]
2026-06-15T13:57:01.6909542Z         },
2026-06-15T13:57:01.6909833Z         "impl": {
2026-06-15T13:57:01.6910009Z           "complete": true,
2026-06-15T13:57:01.6910191Z           "evidence": [
2026-06-15T13:57:01.6910366Z             {
2026-06-15T13:57:01.6910595Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T13:57:01.6910783Z               "line": 323
2026-06-15T13:57:01.6910948Z             },
2026-06-15T13:57:01.6911121Z             {
2026-06-15T13:57:01.6911349Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.6911531Z               "line": 430
2026-06-15T13:57:01.6911700Z             },
2026-06-15T13:57:01.6911862Z             {
2026-06-15T13:57:01.6912080Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.6912256Z               "line": 441
2026-06-15T13:57:01.6912429Z             },
2026-06-15T13:57:01.6912594Z             {
2026-06-15T13:57:01.6912810Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:57:01.6912996Z               "line": 41
2026-06-15T13:57:01.6913172Z             },
2026-06-15T13:57:01.6913349Z             {
2026-06-15T13:57:01.6913572Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:57:01.6913754Z               "line": 62
2026-06-15T13:57:01.6913930Z             },
2026-06-15T13:57:01.6914097Z             {
2026-06-15T13:57:01.6914313Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.6914492Z               "line": 255
2026-06-15T13:57:01.6914664Z             },
2026-06-15T13:57:01.6914825Z             {
2026-06-15T13:57:01.6915031Z               "path": "crates/spt/src/rc.rs",
2026-06-15T13:57:01.6915216Z               "line": 181
2026-06-15T13:57:01.6915389Z             }
2026-06-15T13:57:01.6915555Z           ]
2026-06-15T13:57:01.6915712Z         },
2026-06-15T13:57:01.6915889Z         "int": {
2026-06-15T13:57:01.6916065Z           "complete": true,
2026-06-15T13:57:01.6916248Z           "evidence": [
2026-06-15T13:57:01.6916423Z             {
2026-06-15T13:57:01.6916661Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:57:01.6916846Z               "line": 789
2026-06-15T13:57:01.6917011Z             },
2026-06-15T13:57:01.6917178Z             {
2026-06-15T13:57:01.6917401Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:57:01.6917579Z               "line": 829
2026-06-15T13:57:01.6917754Z             },
2026-06-15T13:57:01.6917917Z             {
2026-06-15T13:57:01.6918161Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:57:01.6918336Z               "line": 876
2026-06-15T13:57:01.6918508Z             },
2026-06-15T13:57:01.6918675Z             {
2026-06-15T13:57:01.6918894Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:57:01.6919157Z               "line": 988
2026-06-15T13:57:01.6919328Z             }
2026-06-15T13:57:01.6919501Z           ]
2026-06-15T13:57:01.6919670Z         },
2026-06-15T13:57:01.6919841Z         "unit": {
2026-06-15T13:57:01.6920025Z           "complete": true,
2026-06-15T13:57:01.6920217Z           "evidence": [
2026-06-15T13:57:01.6920389Z             {
2026-06-15T13:57:01.6920602Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:57:01.6920789Z               "line": 175
2026-06-15T13:57:01.6920955Z             },
2026-06-15T13:57:01.6921132Z             {
2026-06-15T13:57:01.6921357Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:57:01.6921653Z               "line": 195
2026-06-15T13:57:01.6921827Z             }
2026-06-15T13:57:01.6921991Z           ]
2026-06-15T13:57:01.6922170Z         }
2026-06-15T13:57:01.6922337Z       }
2026-06-15T13:57:01.6922511Z     },
2026-06-15T13:57:01.6922684Z     {
2026-06-15T13:57:01.6922864Z       "id": "REQ-REACH-1",
2026-06-15T13:57:01.6923140Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-15T13:57:01.6923332Z       "requiredStages": [
2026-06-15T13:57:01.6923507Z         "impl",
2026-06-15T13:57:01.6923661Z         "unit",
2026-06-15T13:57:01.6923957Z         "int"
2026-06-15T13:57:01.6924127Z       ],
2026-06-15T13:57:01.6924300Z       "stages": {
2026-06-15T13:57:01.6924481Z         "doc": {
2026-06-15T13:57:01.6924657Z           "complete": false,
2026-06-15T13:57:01.6924840Z           "evidence": []
2026-06-15T13:57:01.6925004Z         },
2026-06-15T13:57:01.6925180Z         "impl": {
2026-06-15T13:57:01.6925357Z           "complete": true,
2026-06-15T13:57:01.6925539Z           "evidence": [
2026-06-15T13:57:01.6925709Z             {
2026-06-15T13:57:01.6925934Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.6926115Z               "line": 430
2026-06-15T13:57:01.6926277Z             },
2026-06-15T13:57:01.6926450Z             {
2026-06-15T13:57:01.6926673Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T13:57:01.6926850Z               "line": 76
2026-06-15T13:57:01.6927031Z             },
2026-06-15T13:57:01.6927198Z             {
2026-06-15T13:57:01.6927415Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T13:57:01.6927590Z               "line": 222
2026-06-15T13:57:01.6927757Z             },
2026-06-15T13:57:01.6927933Z             {
2026-06-15T13:57:01.6928153Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T13:57:01.6928353Z               "line": 422
2026-06-15T13:57:01.6928525Z             },
2026-06-15T13:57:01.6928702Z             {
2026-06-15T13:57:01.6928906Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T13:57:01.6929197Z               "line": 529
2026-06-15T13:57:01.6929360Z             },
2026-06-15T13:57:01.6929536Z             {
2026-06-15T13:57:01.6929755Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T13:57:01.6929937Z               "line": 39
2026-06-15T13:57:01.6930103Z             },
2026-06-15T13:57:01.6930264Z             {
2026-06-15T13:57:01.6930472Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.6930648Z               "line": 239
2026-06-15T13:57:01.6930824Z             },
2026-06-15T13:57:01.6931006Z             {
2026-06-15T13:57:01.6931225Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T13:57:01.6931402Z               "line": 88
2026-06-15T13:57:01.6931578Z             },
2026-06-15T13:57:01.6931750Z             {
2026-06-15T13:57:01.6931955Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T13:57:01.6932135Z               "line": 98
2026-06-15T13:57:01.6932317Z             },
2026-06-15T13:57:01.6932484Z             {
2026-06-15T13:57:01.6932707Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.6932888Z               "line": 229
2026-06-15T13:57:01.6933062Z             }
2026-06-15T13:57:01.6933239Z           ]
2026-06-15T13:57:01.6933400Z         },
2026-06-15T13:57:01.6933582Z         "int": {
2026-06-15T13:57:01.6933758Z           "complete": true,
2026-06-15T13:57:01.6933939Z           "evidence": [
2026-06-15T13:57:01.6934116Z             {
2026-06-15T13:57:01.6934363Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:57:01.6934555Z               "line": 415
2026-06-15T13:57:01.6934707Z             },
2026-06-15T13:57:01.6934884Z             {
2026-06-15T13:57:01.6935113Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:57:01.6935284Z               "line": 516
2026-06-15T13:57:01.6935447Z             },
2026-06-15T13:57:01.6935621Z             {
2026-06-15T13:57:01.6935857Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6936146Z               "line": 904
2026-06-15T13:57:01.6936327Z             },
2026-06-15T13:57:01.6936499Z             {
2026-06-15T13:57:01.6936729Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.6936903Z               "line": 1199
2026-06-15T13:57:01.6937082Z             }
2026-06-15T13:57:01.6937257Z           ]
2026-06-15T13:57:01.6937425Z         },
2026-06-15T13:57:01.6937596Z         "unit": {
2026-06-15T13:57:01.6937781Z           "complete": true,
2026-06-15T13:57:01.6938061Z           "evidence": [
2026-06-15T13:57:01.6938230Z             {
2026-06-15T13:57:01.6938455Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T13:57:01.6938632Z               "line": 639
2026-06-15T13:57:01.6938803Z             },
2026-06-15T13:57:01.6939052Z             {
2026-06-15T13:57:01.6939272Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T13:57:01.6939456Z               "line": 660
2026-06-15T13:57:01.6939634Z             },
2026-06-15T13:57:01.6939809Z             {
2026-06-15T13:57:01.6940038Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:57:01.6940216Z               "line": 646
2026-06-15T13:57:01.6940396Z             },
2026-06-15T13:57:01.6940560Z             {
2026-06-15T13:57:01.6940790Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T13:57:01.6940970Z               "line": 93
2026-06-15T13:57:01.6941151Z             },
2026-06-15T13:57:01.6941323Z             {
2026-06-15T13:57:01.6941542Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T13:57:01.6941732Z               "line": 224
2026-06-15T13:57:01.6941900Z             },
2026-06-15T13:57:01.6942075Z             {
2026-06-15T13:57:01.6942300Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T13:57:01.6942478Z               "line": 96
2026-06-15T13:57:01.6942657Z             },
2026-06-15T13:57:01.6942816Z             {
2026-06-15T13:57:01.6943049Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T13:57:01.6943216Z               "line": 146
2026-06-15T13:57:01.6943390Z             },
2026-06-15T13:57:01.6943565Z             {
2026-06-15T13:57:01.6943784Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.6943965Z               "line": 529
2026-06-15T13:57:01.6944138Z             },
2026-06-15T13:57:01.6944313Z             {
2026-06-15T13:57:01.6944528Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T13:57:01.6944706Z               "line": 118
2026-06-15T13:57:01.6944886Z             },
2026-06-15T13:57:01.6945053Z             {
2026-06-15T13:57:01.6945272Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T13:57:01.6945448Z               "line": 148
2026-06-15T13:57:01.6945620Z             },
2026-06-15T13:57:01.6945796Z             {
2026-06-15T13:57:01.6946026Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.6946201Z               "line": 804
2026-06-15T13:57:01.6946382Z             }
2026-06-15T13:57:01.6946558Z           ]
2026-06-15T13:57:01.6946721Z         }
2026-06-15T13:57:01.6946882Z       }
2026-06-15T13:57:01.6947054Z     },
2026-06-15T13:57:01.6947226Z     {
2026-06-15T13:57:01.6947397Z       "id": "REQ-REACH-2",
2026-06-15T13:57:01.6947689Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-15T13:57:01.6947885Z       "requiredStages": [],
2026-06-15T13:57:01.6948060Z       "stages": {
2026-06-15T13:57:01.6948233Z         "doc": {
2026-06-15T13:57:01.6948417Z           "complete": false,
2026-06-15T13:57:01.6948613Z           "evidence": []
2026-06-15T13:57:01.6948786Z         },
2026-06-15T13:57:01.6949029Z         "impl": {
2026-06-15T13:57:01.6949211Z           "complete": false,
2026-06-15T13:57:01.6949392Z           "evidence": []
2026-06-15T13:57:01.6949564Z         },
2026-06-15T13:57:01.6949740Z         "int": {
2026-06-15T13:57:01.6949926Z           "complete": false,
2026-06-15T13:57:01.6950107Z           "evidence": []
2026-06-15T13:57:01.6950398Z         },
2026-06-15T13:57:01.6950574Z         "unit": {
2026-06-15T13:57:01.6950762Z           "complete": false,
2026-06-15T13:57:01.6950941Z           "evidence": []
2026-06-15T13:57:01.6951105Z         }
2026-06-15T13:57:01.6951270Z       }
2026-06-15T13:57:01.6951437Z     },
2026-06-15T13:57:01.6951601Z     {
2026-06-15T13:57:01.6951783Z       "id": "REQ-REL-1",
2026-06-15T13:57:01.6952450Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-15T13:57:01.6952737Z       "requiredStages": [
2026-06-15T13:57:01.6952908Z         "doc",
2026-06-15T13:57:01.6956220Z         "impl"
2026-06-15T13:57:01.6956452Z       ],
2026-06-15T13:57:01.6956629Z       "stages": {
2026-06-15T13:57:01.6956794Z         "doc": {
2026-06-15T13:57:01.6956981Z           "complete": true,
2026-06-15T13:57:01.6957156Z           "evidence": [
2026-06-15T13:57:01.6957315Z             {
2026-06-15T13:57:01.6957714Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-15T13:57:01.6957891Z               "line": 3
2026-06-15T13:57:01.6958057Z             }
2026-06-15T13:57:01.6958216Z           ]
2026-06-15T13:57:01.6958377Z         },
2026-06-15T13:57:01.6958555Z         "impl": {
2026-06-15T13:57:01.6958731Z           "complete": true,
2026-06-15T13:57:01.6958906Z           "evidence": [
2026-06-15T13:57:01.6959144Z             {
2026-06-15T13:57:01.6959379Z               "path": ".github/workflows/docs-publish.yml",
2026-06-15T13:57:01.6959571Z               "line": 11
2026-06-15T13:57:01.6959728Z             },
2026-06-15T13:57:01.6959905Z             {
2026-06-15T13:57:01.6960115Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.6960290Z               "line": 265
2026-06-15T13:57:01.6960454Z             }
2026-06-15T13:57:01.6960619Z           ]
2026-06-15T13:57:01.6960787Z         },
2026-06-15T13:57:01.6960958Z         "int": {
2026-06-15T13:57:01.6961149Z           "complete": false,
2026-06-15T13:57:01.6961332Z           "evidence": []
2026-06-15T13:57:01.6961511Z         },
2026-06-15T13:57:01.6961675Z         "unit": {
2026-06-15T13:57:01.6961849Z           "complete": false,
2026-06-15T13:57:01.6962026Z           "evidence": []
2026-06-15T13:57:01.6962180Z         }
2026-06-15T13:57:01.6962343Z       }
2026-06-15T13:57:01.6962499Z     },
2026-06-15T13:57:01.6962672Z     {
2026-06-15T13:57:01.6962843Z       "id": "REQ-REL-2",
2026-06-15T13:57:01.6963696Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-15T13:57:01.6963893Z       "requiredStages": [
2026-06-15T13:57:01.6964063Z         "impl",
2026-06-15T13:57:01.6964237Z         "int"
2026-06-15T13:57:01.6964402Z       ],
2026-06-15T13:57:01.6964578Z       "stages": {
2026-06-15T13:57:01.6964752Z         "doc": {
2026-06-15T13:57:01.6964939Z           "complete": true,
2026-06-15T13:57:01.6965109Z           "evidence": [
2026-06-15T13:57:01.6965286Z             {
2026-06-15T13:57:01.6965501Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-15T13:57:01.6965677Z               "line": 6
2026-06-15T13:57:01.6965850Z             }
2026-06-15T13:57:01.6966015Z           ]
2026-06-15T13:57:01.6966183Z         },
2026-06-15T13:57:01.6966349Z         "impl": {
2026-06-15T13:57:01.6966526Z           "complete": true,
2026-06-15T13:57:01.6966707Z           "evidence": [
2026-06-15T13:57:01.6966874Z             {
2026-06-15T13:57:01.6967147Z               "path": ".github/workflows/release.yml",
2026-06-15T13:57:01.6967330Z               "line": 16
2026-06-15T13:57:01.6967498Z             },
2026-06-15T13:57:01.6967673Z             {
2026-06-15T13:57:01.6967884Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.6968075Z               "line": 352
2026-06-15T13:57:01.6968237Z             },
2026-06-15T13:57:01.6968570Z             {
2026-06-15T13:57:01.6968833Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.6969086Z               "line": 426
2026-06-15T13:57:01.6969261Z             },
2026-06-15T13:57:01.6969429Z             {
2026-06-15T13:57:01.6969642Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.6969821Z               "line": 588
2026-06-15T13:57:01.6969988Z             },
2026-06-15T13:57:01.6970146Z             {
2026-06-15T13:57:01.6970346Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.6970521Z               "line": 720
2026-06-15T13:57:01.6970813Z             }
2026-06-15T13:57:01.6971118Z           ]
2026-06-15T13:57:01.6971389Z         },
2026-06-15T13:57:01.6971572Z         "int": {
2026-06-15T13:57:01.6971762Z           "complete": true,
2026-06-15T13:57:01.6971935Z           "evidence": [
2026-06-15T13:57:01.6972110Z             {
2026-06-15T13:57:01.6972353Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-15T13:57:01.6972547Z               "line": 13
2026-06-15T13:57:01.6972745Z             }
2026-06-15T13:57:01.6972918Z           ]
2026-06-15T13:57:01.6973093Z         },
2026-06-15T13:57:01.6973261Z         "unit": {
2026-06-15T13:57:01.6973451Z           "complete": false,
2026-06-15T13:57:01.6973633Z           "evidence": []
2026-06-15T13:57:01.6973809Z         }
2026-06-15T13:57:01.6973971Z       }
2026-06-15T13:57:01.6974143Z     },
2026-06-15T13:57:01.6974314Z     {
2026-06-15T13:57:01.6974492Z       "id": "REQ-REL-3",
2026-06-15T13:57:01.6975283Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-15T13:57:01.6975479Z       "requiredStages": [
2026-06-15T13:57:01.6975660Z         "impl",
2026-06-15T13:57:01.6975832Z         "unit"
2026-06-15T13:57:01.6976003Z       ],
2026-06-15T13:57:01.6976180Z       "stages": {
2026-06-15T13:57:01.6976347Z         "doc": {
2026-06-15T13:57:01.6976528Z           "complete": false,
2026-06-15T13:57:01.6976700Z           "evidence": []
2026-06-15T13:57:01.6976876Z         },
2026-06-15T13:57:01.6977044Z         "impl": {
2026-06-15T13:57:01.6977224Z           "complete": true,
2026-06-15T13:57:01.6977397Z           "evidence": [
2026-06-15T13:57:01.6977563Z             {
2026-06-15T13:57:01.6977796Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.6977971Z               "line": 237
2026-06-15T13:57:01.6978143Z             },
2026-06-15T13:57:01.6978301Z             {
2026-06-15T13:57:01.6978539Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.6978716Z               "line": 289
2026-06-15T13:57:01.6978887Z             },
2026-06-15T13:57:01.6979126Z             {
2026-06-15T13:57:01.6979336Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.6979516Z               "line": 329
2026-06-15T13:57:01.6979693Z             },
2026-06-15T13:57:01.6979860Z             {
2026-06-15T13:57:01.6980074Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.6980255Z               "line": 353
2026-06-15T13:57:01.6980424Z             },
2026-06-15T13:57:01.6980591Z             {
2026-06-15T13:57:01.6980800Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.6980977Z               "line": 394
2026-06-15T13:57:01.6981139Z             }
2026-06-15T13:57:01.6981311Z           ]
2026-06-15T13:57:01.6981473Z         },
2026-06-15T13:57:01.6981645Z         "int": {
2026-06-15T13:57:01.6981832Z           "complete": false,
2026-06-15T13:57:01.6982007Z           "evidence": []
2026-06-15T13:57:01.6982184Z         },
2026-06-15T13:57:01.6982355Z         "unit": {
2026-06-15T13:57:01.6982542Z           "complete": true,
2026-06-15T13:57:01.6982713Z           "evidence": [
2026-06-15T13:57:01.6982880Z             {
2026-06-15T13:57:01.6983098Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.6983277Z               "line": 992
2026-06-15T13:57:01.6983606Z             },
2026-06-15T13:57:01.6983764Z             {
2026-06-15T13:57:01.6984001Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.6984173Z               "line": 1051
2026-06-15T13:57:01.6984350Z             }
2026-06-15T13:57:01.6984516Z           ]
2026-06-15T13:57:01.6984689Z         }
2026-06-15T13:57:01.6984859Z       }
2026-06-15T13:57:01.6985032Z     },
2026-06-15T13:57:01.6985198Z     {
2026-06-15T13:57:01.6985371Z       "id": "REQ-RUN-PICKER",
2026-06-15T13:57:01.6993230Z       "title": "Interactive `spt endpoint run` picker (ratatui TUI): bare `spt endpoint run` (no --adapter/--id) enters an in-process picker (flags-present = the REQ-HOST-RUN-1 non-interactive path, untouched). Layer 1 picks kind (Create new | Pick existing). Create-new: choose a registered kind=\"harness\" adapter with its shipped+local profiles tree-nested (registry::registered / manifest.profiles / local_profile_names) → enter a charset-validated id → start. Pick-existing: category select (left/right) over [<cwd-project> | Local node | Subnet], endpoints grouped + alphabetically sorted per category, a status square per endpoint (online green ■ / offline gray ▢ — the blue \"attached\" tri-state + Kick are DEFERRED to a broker attach-presence slice, M12-W2-RULING Q1), type-to-filter (`/`, nucleo-matcher), a pinned keybind legend, and a right-half two-pane description (harness adapter:profile · best-effort project history newest→oldest from the contextstore p-<project> branches, empty-if-none · `spt endpoint description`). Confirm layer offers status-dependent options — Attach/Start/View (rc pump / cmd_endpoint_run) · Instantiate-locally (remote) · Change-harness-adapter (offline) · Fork (cmd_fork) · Resume-from-history (offline+LOCAL only; enumerate spt_store::sessions::last_k, titles `<project> @ <ts> (…id5)`, feed session_id → cmd_endpoint_run --resume). A single action enum is the source of truth so a future tap-mode (phone PTY) layers on without re-coupling to keybinds. EVERY terminal action routes through cmd_endpoint_run / existing CLI fns — no second bringup path.",
2026-06-15T13:57:01.6993586Z       "requiredStages": [
2026-06-15T13:57:01.6993753Z         "doc",
2026-06-15T13:57:01.6993932Z         "impl",
2026-06-15T13:57:01.6994090Z         "unit"
2026-06-15T13:57:01.6994261Z       ],
2026-06-15T13:57:01.6994429Z       "stages": {
2026-06-15T13:57:01.6994605Z         "doc": {
2026-06-15T13:57:01.6994786Z           "complete": true,
2026-06-15T13:57:01.6994963Z           "evidence": [
2026-06-15T13:57:01.6995139Z             {
2026-06-15T13:57:01.6995335Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.6995515Z               "line": 326
2026-06-15T13:57:01.6995683Z             }
2026-06-15T13:57:01.6995850Z           ]
2026-06-15T13:57:01.6996026Z         },
2026-06-15T13:57:01.6996196Z         "impl": {
2026-06-15T13:57:01.6996385Z           "complete": true,
2026-06-15T13:57:01.6996561Z           "evidence": [
2026-06-15T13:57:01.6996732Z             {
2026-06-15T13:57:01.6996938Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6997119Z               "line": 867
2026-06-15T13:57:01.6997281Z             },
2026-06-15T13:57:01.6997448Z             {
2026-06-15T13:57:01.6997643Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.6997816Z               "line": 877
2026-06-15T13:57:01.6997997Z             },
2026-06-15T13:57:01.6998159Z             {
2026-06-15T13:57:01.6998383Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T13:57:01.6998555Z               "line": 9
2026-06-15T13:57:01.6998722Z             },
2026-06-15T13:57:01.6998902Z             {
2026-06-15T13:57:01.6999193Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T13:57:01.6999378Z               "line": 67
2026-06-15T13:57:01.6999541Z             },
2026-06-15T13:57:01.6999722Z             {
2026-06-15T13:57:01.6999945Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-15T13:57:01.7000123Z               "line": 16
2026-06-15T13:57:01.7000409Z             },
2026-06-15T13:57:01.7000570Z             {
2026-06-15T13:57:01.7000790Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-15T13:57:01.7000952Z               "line": 249
2026-06-15T13:57:01.7001119Z             },
2026-06-15T13:57:01.7001284Z             {
2026-06-15T13:57:01.7001506Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7001678Z               "line": 11
2026-06-15T13:57:01.7001845Z             },
2026-06-15T13:57:01.7002022Z             {
2026-06-15T13:57:01.7002240Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7002517Z               "line": 85
2026-06-15T13:57:01.7002684Z             },
2026-06-15T13:57:01.7002855Z             {
2026-06-15T13:57:01.7003075Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7003238Z               "line": 452
2026-06-15T13:57:01.7003408Z             },
2026-06-15T13:57:01.7003577Z             {
2026-06-15T13:57:01.7003800Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7003991Z               "line": 533
2026-06-15T13:57:01.7004151Z             },
2026-06-15T13:57:01.7004322Z             {
2026-06-15T13:57:01.7004535Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7004717Z               "line": 586
2026-06-15T13:57:01.7004884Z             },
2026-06-15T13:57:01.7005055Z             {
2026-06-15T13:57:01.7005275Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T13:57:01.7005446Z               "line": 8
2026-06-15T13:57:01.7005613Z             }
2026-06-15T13:57:01.7005780Z           ]
2026-06-15T13:57:01.7005952Z         },
2026-06-15T13:57:01.7006114Z         "int": {
2026-06-15T13:57:01.7006299Z           "complete": false,
2026-06-15T13:57:01.7006482Z           "evidence": []
2026-06-15T13:57:01.7006651Z         },
2026-06-15T13:57:01.7006823Z         "unit": {
2026-06-15T13:57:01.7007006Z           "complete": true,
2026-06-15T13:57:01.7007184Z           "evidence": [
2026-06-15T13:57:01.7007354Z             {
2026-06-15T13:57:01.7007561Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7007737Z               "line": 6242
2026-06-15T13:57:01.7007909Z             },
2026-06-15T13:57:01.7008080Z             {
2026-06-15T13:57:01.7008275Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7008457Z               "line": 6253
2026-06-15T13:57:01.7008618Z             },
2026-06-15T13:57:01.7008795Z             {
2026-06-15T13:57:01.7009092Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7009267Z               "line": 737
2026-06-15T13:57:01.7009444Z             },
2026-06-15T13:57:01.7009609Z             {
2026-06-15T13:57:01.7009833Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7010015Z               "line": 744
2026-06-15T13:57:01.7010181Z             },
2026-06-15T13:57:01.7010354Z             {
2026-06-15T13:57:01.7010567Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7010758Z               "line": 761
2026-06-15T13:57:01.7010921Z             },
2026-06-15T13:57:01.7011097Z             {
2026-06-15T13:57:01.7011313Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7011492Z               "line": 781
2026-06-15T13:57:01.7011665Z             },
2026-06-15T13:57:01.7011830Z             {
2026-06-15T13:57:01.7012043Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7012219Z               "line": 795
2026-06-15T13:57:01.7012395Z             },
2026-06-15T13:57:01.7012567Z             {
2026-06-15T13:57:01.7012800Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7012982Z               "line": 804
2026-06-15T13:57:01.7013149Z             },
2026-06-15T13:57:01.7013311Z             {
2026-06-15T13:57:01.7013531Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7013711Z               "line": 815
2026-06-15T13:57:01.7013874Z             },
2026-06-15T13:57:01.7014151Z             {
2026-06-15T13:57:01.7014374Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7014546Z               "line": 837
2026-06-15T13:57:01.7014721Z             },
2026-06-15T13:57:01.7014891Z             {
2026-06-15T13:57:01.7015110Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7015286Z               "line": 856
2026-06-15T13:57:01.7015459Z             },
2026-06-15T13:57:01.7015629Z             {
2026-06-15T13:57:01.7015849Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7016026Z               "line": 893
2026-06-15T13:57:01.7016297Z             },
2026-06-15T13:57:01.7016474Z             {
2026-06-15T13:57:01.7016699Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7016874Z               "line": 922
2026-06-15T13:57:01.7017052Z             },
2026-06-15T13:57:01.7017212Z             {
2026-06-15T13:57:01.7017440Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7017624Z               "line": 935
2026-06-15T13:57:01.7017801Z             },
2026-06-15T13:57:01.7017972Z             {
2026-06-15T13:57:01.7018187Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7018364Z               "line": 979
2026-06-15T13:57:01.7018539Z             },
2026-06-15T13:57:01.7018717Z             {
2026-06-15T13:57:01.7018931Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7019207Z               "line": 1006
2026-06-15T13:57:01.7019393Z             },
2026-06-15T13:57:01.7019571Z             {
2026-06-15T13:57:01.7019808Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:57:01.7019990Z               "line": 1022
2026-06-15T13:57:01.7020164Z             },
2026-06-15T13:57:01.7020328Z             {
2026-06-15T13:57:01.7020542Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T13:57:01.7020727Z               "line": 419
2026-06-15T13:57:01.7020900Z             },
2026-06-15T13:57:01.7021079Z             {
2026-06-15T13:57:01.7021295Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T13:57:01.7021476Z               "line": 431
2026-06-15T13:57:01.7021652Z             },
2026-06-15T13:57:01.7021820Z             {
2026-06-15T13:57:01.7022048Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T13:57:01.7022225Z               "line": 449
2026-06-15T13:57:01.7022399Z             },
2026-06-15T13:57:01.7022571Z             {
2026-06-15T13:57:01.7022788Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T13:57:01.7022965Z               "line": 471
2026-06-15T13:57:01.7023142Z             },
2026-06-15T13:57:01.7023322Z             {
2026-06-15T13:57:01.7023537Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T13:57:01.7023714Z               "line": 481
2026-06-15T13:57:01.7023881Z             },
2026-06-15T13:57:01.7024048Z             {
2026-06-15T13:57:01.7024271Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T13:57:01.7024453Z               "line": 504
2026-06-15T13:57:01.7024629Z             }
2026-06-15T13:57:01.7024796Z           ]
2026-06-15T13:57:01.7024973Z         }
2026-06-15T13:57:01.7025148Z       }
2026-06-15T13:57:01.7025310Z     },
2026-06-15T13:57:01.7025484Z     {
2026-06-15T13:57:01.7025670Z       "id": "REQ-RUN-SHORTCUT",
2026-06-15T13:57:01.7033249Z       "title": "`<basename>-<id>` launcher shortcut generation (picker `s` keybind, M12-W2-T2.4): from any pre-start options set the picker writes/updates a `<basename>-<id>` launcher at the project root baking the current selection's non-interactive `spt endpoint run` flags (terminal actions only: adapter[:profile] + id + (create|resume) + (start|attach|view); Kick/Instantiate/Change-adapter/Fork are interactive-only, not bakeable). BASENAME IS A PARAMETER (operator rev. 2026-06-14): harness-agnostic spt-core defaults to `spt` (→ `spt-<id>`); an adapter/flow OVERRIDES it (spt-claude-code → `cc`), so spt-core NEVER bakes `cc` (a harness name) into itself. The basename must be a DISTINCT token, never bare `spt` (a `spt.cmd` would shadow the real `spt.exe` only under cmd.exe cwd-first search, silently no-op in PowerShell/Unix, and self-recurse). The script is the CURRENT OS's native form — `.cmd` on Windows (NOT `.ps1`: default PATHEXT excludes `.ps1` so a bare/ext-less name never resolves one; `.cmd` is PATHEXT-resolvable), POSIX `sh` (+chmod +x) on Unix (a single portable form can't be both). The generated header documents the invocation reality (cmd.exe bare `<name>` in the project dir / PowerShell `.\\<name>` / Unix `./<name>`; a truly-bare basename on PATH = a PATH-installed launcher, `/spt:setup`'s job). Overwrite is SENTINEL-guarded: the generator writes + checks a generated-by header marker — it overwrites its own prior output freely, but REFUSES + warns if a same-named file lacks the sentinel (never clobber a user file). Requires the additive `--create` flag on `Run{}` (the default-fresh made explicit; N-1-safe).",
2026-06-15T13:57:01.7033673Z       "requiredStages": [
2026-06-15T13:57:01.7033858Z         "doc",
2026-06-15T13:57:01.7034032Z         "impl",
2026-06-15T13:57:01.7034211Z         "unit"
2026-06-15T13:57:01.7034370Z       ],
2026-06-15T13:57:01.7034545Z       "stages": {
2026-06-15T13:57:01.7034718Z         "doc": {
2026-06-15T13:57:01.7034908Z           "complete": true,
2026-06-15T13:57:01.7035098Z           "evidence": [
2026-06-15T13:57:01.7035266Z             {
2026-06-15T13:57:01.7035466Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.7035639Z               "line": 349
2026-06-15T13:57:01.7035818Z             }
2026-06-15T13:57:01.7035989Z           ]
2026-06-15T13:57:01.7036163Z         },
2026-06-15T13:57:01.7036341Z         "impl": {
2026-06-15T13:57:01.7036516Z           "complete": true,
2026-06-15T13:57:01.7036693Z           "evidence": [
2026-06-15T13:57:01.7036865Z             {
2026-06-15T13:57:01.7037107Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T13:57:01.7037279Z               "line": 39
2026-06-15T13:57:01.7037455Z             },
2026-06-15T13:57:01.7037632Z             {
2026-06-15T13:57:01.7037853Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T13:57:01.7038028Z               "line": 79
2026-06-15T13:57:01.7038187Z             },
2026-06-15T13:57:01.7038365Z             {
2026-06-15T13:57:01.7038592Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T13:57:01.7038763Z               "line": 162
2026-06-15T13:57:01.7038935Z             }
2026-06-15T13:57:01.7039184Z           ]
2026-06-15T13:57:01.7039364Z         },
2026-06-15T13:57:01.7039541Z         "int": {
2026-06-15T13:57:01.7039732Z           "complete": false,
2026-06-15T13:57:01.7039903Z           "evidence": []
2026-06-15T13:57:01.7040066Z         },
2026-06-15T13:57:01.7040237Z         "unit": {
2026-06-15T13:57:01.7040410Z           "complete": true,
2026-06-15T13:57:01.7040585Z           "evidence": [
2026-06-15T13:57:01.7040753Z             {
2026-06-15T13:57:01.7040977Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T13:57:01.7041147Z               "line": 206
2026-06-15T13:57:01.7041323Z             },
2026-06-15T13:57:01.7041490Z             {
2026-06-15T13:57:01.7041710Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T13:57:01.7041885Z               "line": 222
2026-06-15T13:57:01.7042058Z             },
2026-06-15T13:57:01.7042238Z             {
2026-06-15T13:57:01.7042453Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T13:57:01.7042636Z               "line": 238
2026-06-15T13:57:01.7042806Z             },
2026-06-15T13:57:01.7042983Z             {
2026-06-15T13:57:01.7043207Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T13:57:01.7043383Z               "line": 251
2026-06-15T13:57:01.7043558Z             },
2026-06-15T13:57:01.7043728Z             {
2026-06-15T13:57:01.7043947Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T13:57:01.7044132Z               "line": 258
2026-06-15T13:57:01.7044428Z             }
2026-06-15T13:57:01.7044601Z           ]
2026-06-15T13:57:01.7044776Z         }
2026-06-15T13:57:01.7044944Z       }
2026-06-15T13:57:01.7045100Z     },
2026-06-15T13:57:01.7045259Z     {
2026-06-15T13:57:01.7045454Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-15T13:57:01.7045783Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-15T13:57:01.7045982Z       "requiredStages": [
2026-06-15T13:57:01.7046156Z         "impl",
2026-06-15T13:57:01.7046330Z         "unit"
2026-06-15T13:57:01.7046502Z       ],
2026-06-15T13:57:01.7046781Z       "stages": {
2026-06-15T13:57:01.7046957Z         "doc": {
2026-06-15T13:57:01.7047139Z           "complete": false,
2026-06-15T13:57:01.7047319Z           "evidence": []
2026-06-15T13:57:01.7047487Z         },
2026-06-15T13:57:01.7047667Z         "impl": {
2026-06-15T13:57:01.7047849Z           "complete": true,
2026-06-15T13:57:01.7048025Z           "evidence": [
2026-06-15T13:57:01.7048201Z             {
2026-06-15T13:57:01.7048427Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.7048607Z               "line": 18
2026-06-15T13:57:01.7048780Z             },
2026-06-15T13:57:01.7049045Z             {
2026-06-15T13:57:01.7049271Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.7049449Z               "line": 35
2026-06-15T13:57:01.7049624Z             },
2026-06-15T13:57:01.7049801Z             {
2026-06-15T13:57:01.7050016Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.7050196Z               "line": 72
2026-06-15T13:57:01.7050382Z             }
2026-06-15T13:57:01.7050563Z           ]
2026-06-15T13:57:01.7050735Z         },
2026-06-15T13:57:01.7050912Z         "int": {
2026-06-15T13:57:01.7051092Z           "complete": false,
2026-06-15T13:57:01.7051275Z           "evidence": []
2026-06-15T13:57:01.7051436Z         },
2026-06-15T13:57:01.7051619Z         "unit": {
2026-06-15T13:57:01.7051793Z           "complete": true,
2026-06-15T13:57:01.7051984Z           "evidence": [
2026-06-15T13:57:01.7052154Z             {
2026-06-15T13:57:01.7052370Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.7052557Z               "line": 239
2026-06-15T13:57:01.7052727Z             },
2026-06-15T13:57:01.7052900Z             {
2026-06-15T13:57:01.7053132Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.7053304Z               "line": 256
2026-06-15T13:57:01.7053486Z             },
2026-06-15T13:57:01.7053642Z             {
2026-06-15T13:57:01.7053868Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.7054052Z               "line": 265
2026-06-15T13:57:01.7054228Z             }
2026-06-15T13:57:01.7054397Z           ]
2026-06-15T13:57:01.7054565Z         }
2026-06-15T13:57:01.7054741Z       }
2026-06-15T13:57:01.7054908Z     },
2026-06-15T13:57:01.7055079Z     {
2026-06-15T13:57:01.7055270Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-15T13:57:01.7055556Z       "title": "Hostable endpoint-types capability declaration",
2026-06-15T13:57:01.7055743Z       "requiredStages": [
2026-06-15T13:57:01.7055914Z         "impl",
2026-06-15T13:57:01.7056091Z         "unit"
2026-06-15T13:57:01.7056243Z       ],
2026-06-15T13:57:01.7056434Z       "stages": {
2026-06-15T13:57:01.7056605Z         "doc": {
2026-06-15T13:57:01.7056797Z           "complete": false,
2026-06-15T13:57:01.7056980Z           "evidence": []
2026-06-15T13:57:01.7057146Z         },
2026-06-15T13:57:01.7057317Z         "impl": {
2026-06-15T13:57:01.7057499Z           "complete": true,
2026-06-15T13:57:01.7057690Z           "evidence": [
2026-06-15T13:57:01.7057860Z             {
2026-06-15T13:57:01.7058104Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.7058285Z               "line": 474
2026-06-15T13:57:01.7058452Z             }
2026-06-15T13:57:01.7058629Z           ]
2026-06-15T13:57:01.7058800Z         },
2026-06-15T13:57:01.7059048Z         "int": {
2026-06-15T13:57:01.7059235Z           "complete": false,
2026-06-15T13:57:01.7059609Z           "evidence": []
2026-06-15T13:57:01.7059788Z         },
2026-06-15T13:57:01.7059956Z         "unit": {
2026-06-15T13:57:01.7060136Z           "complete": true,
2026-06-15T13:57:01.7060318Z           "evidence": [
2026-06-15T13:57:01.7060484Z             {
2026-06-15T13:57:01.7060713Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.7060896Z               "line": 843
2026-06-15T13:57:01.7061066Z             }
2026-06-15T13:57:01.7061234Z           ]
2026-06-15T13:57:01.7061405Z         }
2026-06-15T13:57:01.7061681Z       }
2026-06-15T13:57:01.7061864Z     },
2026-06-15T13:57:01.7062034Z     {
2026-06-15T13:57:01.7062230Z       "id": "REQ-SEAM-HISTORY",
2026-06-15T13:57:01.7062568Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-15T13:57:01.7062753Z       "requiredStages": [
2026-06-15T13:57:01.7062935Z         "impl",
2026-06-15T13:57:01.7063107Z         "unit",
2026-06-15T13:57:01.7063282Z         "int"
2026-06-15T13:57:01.7063455Z       ],
2026-06-15T13:57:01.7063635Z       "stages": {
2026-06-15T13:57:01.7063794Z         "doc": {
2026-06-15T13:57:01.7063979Z           "complete": false,
2026-06-15T13:57:01.7064160Z           "evidence": []
2026-06-15T13:57:01.7064332Z         },
2026-06-15T13:57:01.7064507Z         "impl": {
2026-06-15T13:57:01.7064697Z           "complete": true,
2026-06-15T13:57:01.7064867Z           "evidence": [
2026-06-15T13:57:01.7065039Z             {
2026-06-15T13:57:01.7065257Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T13:57:01.7065445Z               "line": 24
2026-06-15T13:57:01.7065615Z             },
2026-06-15T13:57:01.7065792Z             {
2026-06-15T13:57:01.7065984Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T13:57:01.7066235Z               "line": 22
2026-06-15T13:57:01.7066412Z             }
2026-06-15T13:57:01.7066584Z           ]
2026-06-15T13:57:01.7066765Z         },
2026-06-15T13:57:01.7066923Z         "int": {
2026-06-15T13:57:01.7067122Z           "complete": true,
2026-06-15T13:57:01.7067291Z           "evidence": [
2026-06-15T13:57:01.7067469Z             {
2026-06-15T13:57:01.7067697Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:57:01.7067882Z               "line": 260
2026-06-15T13:57:01.7068059Z             }
2026-06-15T13:57:01.7068226Z           ]
2026-06-15T13:57:01.7068402Z         },
2026-06-15T13:57:01.7068569Z         "unit": {
2026-06-15T13:57:01.7068759Z           "complete": true,
2026-06-15T13:57:01.7068937Z           "evidence": [
2026-06-15T13:57:01.7069204Z             {
2026-06-15T13:57:01.7069436Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T13:57:01.7069613Z               "line": 171
2026-06-15T13:57:01.7069790Z             },
2026-06-15T13:57:01.7069961Z             {
2026-06-15T13:57:01.7070165Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T13:57:01.7070344Z               "line": 200
2026-06-15T13:57:01.7070511Z             },
2026-06-15T13:57:01.7070691Z             {
2026-06-15T13:57:01.7070902Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T13:57:01.7071078Z               "line": 220
2026-06-15T13:57:01.7071241Z             },
2026-06-15T13:57:01.7071408Z             {
2026-06-15T13:57:01.7071631Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T13:57:01.7071813Z               "line": 199
2026-06-15T13:57:01.7071989Z             },
2026-06-15T13:57:01.7072156Z             {
2026-06-15T13:57:01.7072372Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T13:57:01.7072546Z               "line": 219
2026-06-15T13:57:01.7072720Z             },
2026-06-15T13:57:01.7072894Z             {
2026-06-15T13:57:01.7073114Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T13:57:01.7073294Z               "line": 244
2026-06-15T13:57:01.7073462Z             },
2026-06-15T13:57:01.7073643Z             {
2026-06-15T13:57:01.7073852Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T13:57:01.7074153Z               "line": 276
2026-06-15T13:57:01.7074330Z             },
2026-06-15T13:57:01.7074491Z             {
2026-06-15T13:57:01.7074711Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T13:57:01.7074887Z               "line": 297
2026-06-15T13:57:01.7075063Z             },
2026-06-15T13:57:01.7075234Z             {
2026-06-15T13:57:01.7075456Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T13:57:01.7075632Z               "line": 324
2026-06-15T13:57:01.7075804Z             }
2026-06-15T13:57:01.7076080Z           ]
2026-06-15T13:57:01.7076253Z         }
2026-06-15T13:57:01.7076428Z       }
2026-06-15T13:57:01.7076587Z     },
2026-06-15T13:57:01.7076762Z     {
2026-06-15T13:57:01.7077006Z       "id": "REQ-SEAM-INJECT",
2026-06-15T13:57:01.7077306Z       "title": "inject-input methods configurable per activity-state",
2026-06-15T13:57:01.7077498Z       "requiredStages": [
2026-06-15T13:57:01.7077673Z         "impl",
2026-06-15T13:57:01.7077856Z         "unit"
2026-06-15T13:57:01.7078015Z       ],
2026-06-15T13:57:01.7078201Z       "stages": {
2026-06-15T13:57:01.7078379Z         "doc": {
2026-06-15T13:57:01.7078567Z           "complete": false,
2026-06-15T13:57:01.7078742Z           "evidence": []
2026-06-15T13:57:01.7078910Z         },
2026-06-15T13:57:01.7079163Z         "impl": {
2026-06-15T13:57:01.7079347Z           "complete": true,
2026-06-15T13:57:01.7079529Z           "evidence": [
2026-06-15T13:57:01.7079701Z             {
2026-06-15T13:57:01.7079925Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.7080121Z               "line": 19
2026-06-15T13:57:01.7080292Z             },
2026-06-15T13:57:01.7080465Z             {
2026-06-15T13:57:01.7080672Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.7080857Z               "line": 111
2026-06-15T13:57:01.7081028Z             }
2026-06-15T13:57:01.7081200Z           ]
2026-06-15T13:57:01.7081377Z         },
2026-06-15T13:57:01.7081556Z         "int": {
2026-06-15T13:57:01.7081744Z           "complete": false,
2026-06-15T13:57:01.7081919Z           "evidence": []
2026-06-15T13:57:01.7082096Z         },
2026-06-15T13:57:01.7082272Z         "unit": {
2026-06-15T13:57:01.7082449Z           "complete": true,
2026-06-15T13:57:01.7082631Z           "evidence": [
2026-06-15T13:57:01.7082802Z             {
2026-06-15T13:57:01.7083027Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.7083208Z               "line": 345
2026-06-15T13:57:01.7083384Z             },
2026-06-15T13:57:01.7083564Z             {
2026-06-15T13:57:01.7083778Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.7083970Z               "line": 365
2026-06-15T13:57:01.7084140Z             }
2026-06-15T13:57:01.7084312Z           ]
2026-06-15T13:57:01.7084479Z         }
2026-06-15T13:57:01.7084651Z       }
2026-06-15T13:57:01.7084827Z     },
2026-06-15T13:57:01.7084994Z     {
2026-06-15T13:57:01.7085191Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-15T13:57:01.7085447Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-15T13:57:01.7085637Z       "requiredStages": [
2026-06-15T13:57:01.7085808Z         "impl",
2026-06-15T13:57:01.7085987Z         "unit"
2026-06-15T13:57:01.7086169Z       ],
2026-06-15T13:57:01.7086345Z       "stages": {
2026-06-15T13:57:01.7086517Z         "doc": {
2026-06-15T13:57:01.7086712Z           "complete": false,
2026-06-15T13:57:01.7086955Z           "evidence": []
2026-06-15T13:57:01.7087128Z         },
2026-06-15T13:57:01.7087303Z         "impl": {
2026-06-15T13:57:01.7087490Z           "complete": true,
2026-06-15T13:57:01.7087666Z           "evidence": [
2026-06-15T13:57:01.7087842Z             {
2026-06-15T13:57:01.7088063Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.7088238Z               "line": 18
2026-06-15T13:57:01.7088411Z             },
2026-06-15T13:57:01.7088590Z             {
2026-06-15T13:57:01.7088808Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.7089169Z               "line": 353
2026-06-15T13:57:01.7089346Z             }
2026-06-15T13:57:01.7089517Z           ]
2026-06-15T13:57:01.7089690Z         },
2026-06-15T13:57:01.7089851Z         "int": {
2026-06-15T13:57:01.7090028Z           "complete": false,
2026-06-15T13:57:01.7090209Z           "evidence": []
2026-06-15T13:57:01.7090376Z         },
2026-06-15T13:57:01.7090552Z         "unit": {
2026-06-15T13:57:01.7090729Z           "complete": true,
2026-06-15T13:57:01.7090915Z           "evidence": [
2026-06-15T13:57:01.7091086Z             {
2026-06-15T13:57:01.7091436Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.7091621Z               "line": 606
2026-06-15T13:57:01.7091793Z             },
2026-06-15T13:57:01.7091970Z             {
2026-06-15T13:57:01.7092184Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.7092366Z               "line": 616
2026-06-15T13:57:01.7092538Z             }
2026-06-15T13:57:01.7092719Z           ]
2026-06-15T13:57:01.7092895Z         }
2026-06-15T13:57:01.7093066Z       }
2026-06-15T13:57:01.7093244Z     },
2026-06-15T13:57:01.7093409Z     {
2026-06-15T13:57:01.7093605Z       "id": "REQ-SEAM-PSYCHE",
2026-06-15T13:57:01.7093864Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-15T13:57:01.7094057Z       "requiredStages": [
2026-06-15T13:57:01.7094234Z         "impl",
2026-06-15T13:57:01.7094405Z         "unit",
2026-06-15T13:57:01.7097826Z         "int"
2026-06-15T13:57:01.7098036Z       ],
2026-06-15T13:57:01.7098221Z       "stages": {
2026-06-15T13:57:01.7098402Z         "doc": {
2026-06-15T13:57:01.7098599Z           "complete": false,
2026-06-15T13:57:01.7098788Z           "evidence": []
2026-06-15T13:57:01.7099032Z         },
2026-06-15T13:57:01.7099211Z         "impl": {
2026-06-15T13:57:01.7099387Z           "complete": true,
2026-06-15T13:57:01.7099567Z           "evidence": [
2026-06-15T13:57:01.7099734Z             {
2026-06-15T13:57:01.7099973Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T13:57:01.7100148Z               "line": 19
2026-06-15T13:57:01.7100306Z             },
2026-06-15T13:57:01.7100477Z             {
2026-06-15T13:57:01.7100688Z               "path": "crates/spt/src/api/live.rs",
2026-06-15T13:57:01.7100865Z               "line": 12
2026-06-15T13:57:01.7101035Z             },
2026-06-15T13:57:01.7101209Z             {
2026-06-15T13:57:01.7101441Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.7101618Z               "line": 241
2026-06-15T13:57:01.7101788Z             }
2026-06-15T13:57:01.7101949Z           ]
2026-06-15T13:57:01.7102124Z         },
2026-06-15T13:57:01.7102282Z         "int": {
2026-06-15T13:57:01.7102463Z           "complete": true,
2026-06-15T13:57:01.7102653Z           "evidence": [
2026-06-15T13:57:01.7102816Z             {
2026-06-15T13:57:01.7103049Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:57:01.7103231Z               "line": 259
2026-06-15T13:57:01.7103407Z             }
2026-06-15T13:57:01.7103574Z           ]
2026-06-15T13:57:01.7103752Z         },
2026-06-15T13:57:01.7103927Z         "unit": {
2026-06-15T13:57:01.7104104Z           "complete": true,
2026-06-15T13:57:01.7104285Z           "evidence": [
2026-06-15T13:57:01.7104443Z             {
2026-06-15T13:57:01.7104660Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T13:57:01.7104842Z               "line": 161
2026-06-15T13:57:01.7105013Z             },
2026-06-15T13:57:01.7105194Z             {
2026-06-15T13:57:01.7105414Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T13:57:01.7105594Z               "line": 168
2026-06-15T13:57:01.7105762Z             },
2026-06-15T13:57:01.7105938Z             {
2026-06-15T13:57:01.7106153Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T13:57:01.7106325Z               "line": 191
2026-06-15T13:57:01.7106496Z             },
2026-06-15T13:57:01.7106659Z             {
2026-06-15T13:57:01.7107029Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T13:57:01.7107207Z               "line": 106
2026-06-15T13:57:01.7107381Z             },
2026-06-15T13:57:01.7107546Z             {
2026-06-15T13:57:01.7107765Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T13:57:01.7107938Z               "line": 137
2026-06-15T13:57:01.7108099Z             },
2026-06-15T13:57:01.7108272Z             {
2026-06-15T13:57:01.7108495Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T13:57:01.7108676Z               "line": 161
2026-06-15T13:57:01.7108834Z             }
2026-06-15T13:57:01.7109231Z           ]
2026-06-15T13:57:01.7109401Z         }
2026-06-15T13:57:01.7109574Z       }
2026-06-15T13:57:01.7109743Z     },
2026-06-15T13:57:01.7109915Z     {
2026-06-15T13:57:01.7110108Z       "id": "REQ-SEAM-RESUME",
2026-06-15T13:57:01.7110452Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-15T13:57:01.7110642Z       "requiredStages": [
2026-06-15T13:57:01.7110829Z         "impl",
2026-06-15T13:57:01.7110999Z         "unit"
2026-06-15T13:57:01.7111172Z       ],
2026-06-15T13:57:01.7111348Z       "stages": {
2026-06-15T13:57:01.7111520Z         "doc": {
2026-06-15T13:57:01.7111701Z           "complete": false,
2026-06-15T13:57:01.7111881Z           "evidence": []
2026-06-15T13:57:01.7112059Z         },
2026-06-15T13:57:01.7112230Z         "impl": {
2026-06-15T13:57:01.7112410Z           "complete": true,
2026-06-15T13:57:01.7112585Z           "evidence": [
2026-06-15T13:57:01.7112761Z             {
2026-06-15T13:57:01.7112975Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T13:57:01.7113171Z               "line": 19
2026-06-15T13:57:01.7113343Z             }
2026-06-15T13:57:01.7113514Z           ]
2026-06-15T13:57:01.7113682Z         },
2026-06-15T13:57:01.7113853Z         "int": {
2026-06-15T13:57:01.7114044Z           "complete": false,
2026-06-15T13:57:01.7114220Z           "evidence": []
2026-06-15T13:57:01.7114392Z         },
2026-06-15T13:57:01.7114578Z         "unit": {
2026-06-15T13:57:01.7114758Z           "complete": true,
2026-06-15T13:57:01.7114936Z           "evidence": [
2026-06-15T13:57:01.7115106Z             {
2026-06-15T13:57:01.7115321Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T13:57:01.7115491Z               "line": 201
2026-06-15T13:57:01.7115665Z             },
2026-06-15T13:57:01.7115825Z             {
2026-06-15T13:57:01.7116041Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T13:57:01.7116217Z               "line": 223
2026-06-15T13:57:01.7116394Z             },
2026-06-15T13:57:01.7116561Z             {
2026-06-15T13:57:01.7116774Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T13:57:01.7116957Z               "line": 244
2026-06-15T13:57:01.7117123Z             }
2026-06-15T13:57:01.7117294Z           ]
2026-06-15T13:57:01.7117464Z         }
2026-06-15T13:57:01.7117626Z       }
2026-06-15T13:57:01.7117796Z     },
2026-06-15T13:57:01.7117955Z     {
2026-06-15T13:57:01.7118155Z       "id": "REQ-SEAM-SPAWN",
2026-06-15T13:57:01.7118344Z       "title": "spawn-session seam",
2026-06-15T13:57:01.7118537Z       "requiredStages": [
2026-06-15T13:57:01.7118707Z         "impl",
2026-06-15T13:57:01.7118879Z         "unit"
2026-06-15T13:57:01.7119142Z       ],
2026-06-15T13:57:01.7119317Z       "stages": {
2026-06-15T13:57:01.7119495Z         "doc": {
2026-06-15T13:57:01.7119675Z           "complete": false,
2026-06-15T13:57:01.7119857Z           "evidence": []
2026-06-15T13:57:01.7120019Z         },
2026-06-15T13:57:01.7120195Z         "impl": {
2026-06-15T13:57:01.7120389Z           "complete": true,
2026-06-15T13:57:01.7120563Z           "evidence": [
2026-06-15T13:57:01.7120735Z             {
2026-06-15T13:57:01.7120973Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:57:01.7121151Z               "line": 20
2026-06-15T13:57:01.7121327Z             }
2026-06-15T13:57:01.7121485Z           ]
2026-06-15T13:57:01.7121661Z         },
2026-06-15T13:57:01.7121941Z         "int": {
2026-06-15T13:57:01.7122127Z           "complete": false,
2026-06-15T13:57:01.7122314Z           "evidence": []
2026-06-15T13:57:01.7122470Z         },
2026-06-15T13:57:01.7122649Z         "unit": {
2026-06-15T13:57:01.7122837Z           "complete": true,
2026-06-15T13:57:01.7123013Z           "evidence": [
2026-06-15T13:57:01.7123182Z             {
2026-06-15T13:57:01.7123416Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:57:01.7123598Z               "line": 435
2026-06-15T13:57:01.7123769Z             },
2026-06-15T13:57:01.7124042Z             {
2026-06-15T13:57:01.7124266Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:57:01.7124446Z               "line": 442
2026-06-15T13:57:01.7124609Z             },
2026-06-15T13:57:01.7124785Z             {
2026-06-15T13:57:01.7125013Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:57:01.7125186Z               "line": 452
2026-06-15T13:57:01.7125347Z             },
2026-06-15T13:57:01.7125521Z             {
2026-06-15T13:57:01.7125741Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:57:01.7125920Z               "line": 458
2026-06-15T13:57:01.7126100Z             },
2026-06-15T13:57:01.7126267Z             {
2026-06-15T13:57:01.7126487Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:57:01.7126667Z               "line": 483
2026-06-15T13:57:01.7126835Z             },
2026-06-15T13:57:01.7127001Z             {
2026-06-15T13:57:01.7127220Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:57:01.7127402Z               "line": 520
2026-06-15T13:57:01.7127578Z             }
2026-06-15T13:57:01.7127751Z           ]
2026-06-15T13:57:01.7127925Z         }
2026-06-15T13:57:01.7128092Z       }
2026-06-15T13:57:01.7128266Z     },
2026-06-15T13:57:01.7128438Z     {
2026-06-15T13:57:01.7128633Z       "id": "REQ-SEAM-UPDATE",
2026-06-15T13:57:01.7129025Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-15T13:57:01.7129205Z       "requiredStages": [
2026-06-15T13:57:01.7129382Z         "impl",
2026-06-15T13:57:01.7129558Z         "unit"
2026-06-15T13:57:01.7129735Z       ],
2026-06-15T13:57:01.7129906Z       "stages": {
2026-06-15T13:57:01.7130078Z         "doc": {
2026-06-15T13:57:01.7130264Z           "complete": false,
2026-06-15T13:57:01.7130445Z           "evidence": []
2026-06-15T13:57:01.7130618Z         },
2026-06-15T13:57:01.7130788Z         "impl": {
2026-06-15T13:57:01.7130968Z           "complete": true,
2026-06-15T13:57:01.7131142Z           "evidence": [
2026-06-15T13:57:01.7131325Z             {
2026-06-15T13:57:01.7131577Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:57:01.7131753Z               "line": 28
2026-06-15T13:57:01.7131925Z             },
2026-06-15T13:57:01.7132082Z             {
2026-06-15T13:57:01.7132330Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:57:01.7132506Z               "line": 83
2026-06-15T13:57:01.7132682Z             }
2026-06-15T13:57:01.7132846Z           ]
2026-06-15T13:57:01.7133016Z         },
2026-06-15T13:57:01.7133189Z         "int": {
2026-06-15T13:57:01.7133373Z           "complete": false,
2026-06-15T13:57:01.7133554Z           "evidence": []
2026-06-15T13:57:01.7133714Z         },
2026-06-15T13:57:01.7133882Z         "unit": {
2026-06-15T13:57:01.7134062Z           "complete": true,
2026-06-15T13:57:01.7134239Z           "evidence": [
2026-06-15T13:57:01.7134400Z             {
2026-06-15T13:57:01.7134639Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:57:01.7134826Z               "line": 286
2026-06-15T13:57:01.7134991Z             },
2026-06-15T13:57:01.7135160Z             {
2026-06-15T13:57:01.7135393Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:57:01.7135573Z               "line": 297
2026-06-15T13:57:01.7135751Z             }
2026-06-15T13:57:01.7135912Z           ]
2026-06-15T13:57:01.7136216Z         }
2026-06-15T13:57:01.7136408Z       }
2026-06-15T13:57:01.7136603Z     },
2026-06-15T13:57:01.7136794Z     {
2026-06-15T13:57:01.7136989Z       "id": "REQ-SEC-1",
2026-06-15T13:57:01.7137687Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-15T13:57:01.7137861Z       "requiredStages": [
2026-06-15T13:57:01.7138030Z         "impl",
2026-06-15T13:57:01.7138195Z         "unit"
2026-06-15T13:57:01.7138368Z       ],
2026-06-15T13:57:01.7138542Z       "stages": {
2026-06-15T13:57:01.7138812Z         "doc": {
2026-06-15T13:57:01.7139084Z           "complete": false,
2026-06-15T13:57:01.7139255Z           "evidence": []
2026-06-15T13:57:01.7139427Z         },
2026-06-15T13:57:01.7139604Z         "impl": {
2026-06-15T13:57:01.7139780Z           "complete": true,
2026-06-15T13:57:01.7139971Z           "evidence": [
2026-06-15T13:57:01.7140137Z             {
2026-06-15T13:57:01.7140371Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T13:57:01.7140544Z               "line": 86
2026-06-15T13:57:01.7140714Z             },
2026-06-15T13:57:01.7140887Z             {
2026-06-15T13:57:01.7141100Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T13:57:01.7141282Z               "line": 116
2026-06-15T13:57:01.7141452Z             },
2026-06-15T13:57:01.7141613Z             {
2026-06-15T13:57:01.7141841Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T13:57:01.7142013Z               "line": 130
2026-06-15T13:57:01.7142190Z             },
2026-06-15T13:57:01.7142360Z             {
2026-06-15T13:57:01.7142590Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:57:01.7142771Z               "line": 109
2026-06-15T13:57:01.7142948Z             },
2026-06-15T13:57:01.7143111Z             {
2026-06-15T13:57:01.7143328Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:57:01.7143502Z               "line": 130
2026-06-15T13:57:01.7143677Z             },
2026-06-15T13:57:01.7143854Z             {
2026-06-15T13:57:01.7144067Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:57:01.7144255Z               "line": 143
2026-06-15T13:57:01.7144422Z             },
2026-06-15T13:57:01.7144598Z             {
2026-06-15T13:57:01.7144823Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:57:01.7144999Z               "line": 209
2026-06-15T13:57:01.7145171Z             },
2026-06-15T13:57:01.7145343Z             {
2026-06-15T13:57:01.7145566Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:57:01.7145753Z               "line": 235
2026-06-15T13:57:01.7145929Z             },
2026-06-15T13:57:01.7146100Z             {
2026-06-15T13:57:01.7146293Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7146472Z               "line": 4742
2026-06-15T13:57:01.7146636Z             }
2026-06-15T13:57:01.7146810Z           ]
2026-06-15T13:57:01.7146982Z         },
2026-06-15T13:57:01.7147163Z         "int": {
2026-06-15T13:57:01.7147349Z           "complete": false,
2026-06-15T13:57:01.7147525Z           "evidence": []
2026-06-15T13:57:01.7147697Z         },
2026-06-15T13:57:01.7147859Z         "unit": {
2026-06-15T13:57:01.7148055Z           "complete": true,
2026-06-15T13:57:01.7148222Z           "evidence": [
2026-06-15T13:57:01.7148393Z             {
2026-06-15T13:57:01.7148622Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T13:57:01.7148794Z               "line": 142
2026-06-15T13:57:01.7149055Z             },
2026-06-15T13:57:01.7149231Z             {
2026-06-15T13:57:01.7149448Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T13:57:01.7149621Z               "line": 194
2026-06-15T13:57:01.7149801Z             },
2026-06-15T13:57:01.7149959Z             {
2026-06-15T13:57:01.7150183Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T13:57:01.7150359Z               "line": 235
2026-06-15T13:57:01.7150517Z             },
2026-06-15T13:57:01.7150789Z             {
2026-06-15T13:57:01.7151022Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-15T13:57:01.7151203Z               "line": 140
2026-06-15T13:57:01.7151380Z             },
2026-06-15T13:57:01.7151541Z             {
2026-06-15T13:57:01.7151758Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:57:01.7151932Z               "line": 247
2026-06-15T13:57:01.7152103Z             },
2026-06-15T13:57:01.7152277Z             {
2026-06-15T13:57:01.7152492Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:57:01.7152788Z               "line": 277
2026-06-15T13:57:01.7152958Z             },
2026-06-15T13:57:01.7153127Z             {
2026-06-15T13:57:01.7153336Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:57:01.7153517Z               "line": 310
2026-06-15T13:57:01.7153690Z             },
2026-06-15T13:57:01.7153856Z             {
2026-06-15T13:57:01.7154076Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:57:01.7154257Z               "line": 329
2026-06-15T13:57:01.7154428Z             },
2026-06-15T13:57:01.7154588Z             {
2026-06-15T13:57:01.7154801Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:57:01.7154982Z               "line": 362
2026-06-15T13:57:01.7155153Z             },
2026-06-15T13:57:01.7155327Z             {
2026-06-15T13:57:01.7155540Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:57:01.7155712Z               "line": 386
2026-06-15T13:57:01.7155879Z             },
2026-06-15T13:57:01.7156065Z             {
2026-06-15T13:57:01.7156266Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7156446Z               "line": 6794
2026-06-15T13:57:01.7156609Z             }
2026-06-15T13:57:01.7156780Z           ]
2026-06-15T13:57:01.7156957Z         }
2026-06-15T13:57:01.7157119Z       }
2026-06-15T13:57:01.7157295Z     },
2026-06-15T13:57:01.7157470Z     {
2026-06-15T13:57:01.7157647Z       "id": "REQ-SHELL-1",
2026-06-15T13:57:01.7159263Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-15T13:57:01.7159446Z       "requiredStages": [
2026-06-15T13:57:01.7159630Z         "impl",
2026-06-15T13:57:01.7159806Z         "unit",
2026-06-15T13:57:01.7159980Z         "int"
2026-06-15T13:57:01.7160152Z       ],
2026-06-15T13:57:01.7160332Z       "stages": {
2026-06-15T13:57:01.7160505Z         "doc": {
2026-06-15T13:57:01.7160681Z           "complete": false,
2026-06-15T13:57:01.7160862Z           "evidence": []
2026-06-15T13:57:01.7161035Z         },
2026-06-15T13:57:01.7161215Z         "impl": {
2026-06-15T13:57:01.7161392Z           "complete": true,
2026-06-15T13:57:01.7161563Z           "evidence": [
2026-06-15T13:57:01.7161730Z             {
2026-06-15T13:57:01.7161964Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:57:01.7162149Z               "line": 189
2026-06-15T13:57:01.7162327Z             },
2026-06-15T13:57:01.7162482Z             {
2026-06-15T13:57:01.7162719Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:57:01.7162889Z               "line": 216
2026-06-15T13:57:01.7163057Z             },
2026-06-15T13:57:01.7163228Z             {
2026-06-15T13:57:01.7163462Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T13:57:01.7163639Z               "line": 27
2026-06-15T13:57:01.7163805Z             },
2026-06-15T13:57:01.7163987Z             {
2026-06-15T13:57:01.7164211Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T13:57:01.7164387Z               "line": 52
2026-06-15T13:57:01.7164574Z             },
2026-06-15T13:57:01.7164792Z             {
2026-06-15T13:57:01.7165030Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T13:57:01.7165319Z               "line": 132
2026-06-15T13:57:01.7165485Z             },
2026-06-15T13:57:01.7165653Z             {
2026-06-15T13:57:01.7165887Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T13:57:01.7166066Z               "line": 164
2026-06-15T13:57:01.7166244Z             },
2026-06-15T13:57:01.7166405Z             {
2026-06-15T13:57:01.7166620Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7166807Z               "line": 22
2026-06-15T13:57:01.7166973Z             },
2026-06-15T13:57:01.7167249Z             {
2026-06-15T13:57:01.7167470Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7167645Z               "line": 65
2026-06-15T13:57:01.7167823Z             },
2026-06-15T13:57:01.7167992Z             {
2026-06-15T13:57:01.7168222Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7168402Z               "line": 76
2026-06-15T13:57:01.7168578Z             },
2026-06-15T13:57:01.7168751Z             {
2026-06-15T13:57:01.7169052Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7169227Z               "line": 150
2026-06-15T13:57:01.7169395Z             },
2026-06-15T13:57:01.7169570Z             {
2026-06-15T13:57:01.7169794Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7169972Z               "line": 209
2026-06-15T13:57:01.7170152Z             },
2026-06-15T13:57:01.7170318Z             {
2026-06-15T13:57:01.7170554Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7170741Z               "line": 254
2026-06-15T13:57:01.7170917Z             },
2026-06-15T13:57:01.7171084Z             {
2026-06-15T13:57:01.7171318Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7171498Z               "line": 276
2026-06-15T13:57:01.7171656Z             },
2026-06-15T13:57:01.7171832Z             {
2026-06-15T13:57:01.7172057Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7172229Z               "line": 289
2026-06-15T13:57:01.7172400Z             },
2026-06-15T13:57:01.7172573Z             {
2026-06-15T13:57:01.7172800Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.7172976Z               "line": 217
2026-06-15T13:57:01.7173147Z             },
2026-06-15T13:57:01.7173312Z             {
2026-06-15T13:57:01.7173531Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.7173707Z               "line": 233
2026-06-15T13:57:01.7173884Z             },
2026-06-15T13:57:01.7174060Z             {
2026-06-15T13:57:01.7174276Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:57:01.7174466Z               "line": 41
2026-06-15T13:57:01.7174633Z             },
2026-06-15T13:57:01.7174806Z             {
2026-06-15T13:57:01.7175024Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:57:01.7175200Z               "line": 222
2026-06-15T13:57:01.7175377Z             },
2026-06-15T13:57:01.7175548Z             {
2026-06-15T13:57:01.7175767Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:57:01.7175941Z               "line": 173
2026-06-15T13:57:01.7176112Z             },
2026-06-15T13:57:01.7176279Z             {
2026-06-15T13:57:01.7176499Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:57:01.7176679Z               "line": 319
2026-06-15T13:57:01.7176847Z             },
2026-06-15T13:57:01.7177029Z             {
2026-06-15T13:57:01.7177237Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:57:01.7177424Z               "line": 371
2026-06-15T13:57:01.7177590Z             },
2026-06-15T13:57:01.7177762Z             {
2026-06-15T13:57:01.7178002Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.7178182Z               "line": 329
2026-06-15T13:57:01.7178359Z             },
2026-06-15T13:57:01.7178519Z             {
2026-06-15T13:57:01.7178720Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7179068Z               "line": 5471
2026-06-15T13:57:01.7179239Z             },
2026-06-15T13:57:01.7179412Z             {
2026-06-15T13:57:01.7179607Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7179787Z               "line": 5621
2026-06-15T13:57:01.7179955Z             },
2026-06-15T13:57:01.7180125Z             {
2026-06-15T13:57:01.7180322Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7180498Z               "line": 5664
2026-06-15T13:57:01.7180674Z             }
2026-06-15T13:57:01.7180950Z           ]
2026-06-15T13:57:01.7181124Z         },
2026-06-15T13:57:01.7181287Z         "int": {
2026-06-15T13:57:01.7181472Z           "complete": true,
2026-06-15T13:57:01.7181649Z           "evidence": [
2026-06-15T13:57:01.7181811Z             {
2026-06-15T13:57:01.7182053Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:57:01.7182235Z               "line": 709
2026-06-15T13:57:01.7182411Z             },
2026-06-15T13:57:01.7182587Z             {
2026-06-15T13:57:01.7182818Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T13:57:01.7183002Z               "line": 8
2026-06-15T13:57:01.7183176Z             },
2026-06-15T13:57:01.7183346Z             {
2026-06-15T13:57:01.7183579Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T13:57:01.7183760Z               "line": 49
2026-06-15T13:57:01.7183934Z             },
2026-06-15T13:57:01.7184111Z             {
2026-06-15T13:57:01.7184343Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.7184521Z               "line": 709
2026-06-15T13:57:01.7184697Z             },
2026-06-15T13:57:01.7184859Z             {
2026-06-15T13:57:01.7185088Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.7185264Z               "line": 1119
2026-06-15T13:57:01.7185436Z             },
2026-06-15T13:57:01.7185637Z             {
2026-06-15T13:57:01.7185870Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T13:57:01.7186047Z               "line": 17
2026-06-15T13:57:01.7186212Z             },
2026-06-15T13:57:01.7186369Z             {
2026-06-15T13:57:01.7186586Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T13:57:01.7186763Z               "line": 14
2026-06-15T13:57:01.7186930Z             }
2026-06-15T13:57:01.7187092Z           ]
2026-06-15T13:57:01.7187269Z         },
2026-06-15T13:57:01.7187440Z         "unit": {
2026-06-15T13:57:01.7187627Z           "complete": true,
2026-06-15T13:57:01.7187802Z           "evidence": [
2026-06-15T13:57:01.7187979Z             {
2026-06-15T13:57:01.7188213Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T13:57:01.7188389Z               "line": 234
2026-06-15T13:57:01.7188562Z             },
2026-06-15T13:57:01.7188727Z             {
2026-06-15T13:57:01.7189032Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T13:57:01.7189204Z               "line": 267
2026-06-15T13:57:01.7189384Z             },
2026-06-15T13:57:01.7189581Z             {
2026-06-15T13:57:01.7189814Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T13:57:01.7189995Z               "line": 307
2026-06-15T13:57:01.7190158Z             },
2026-06-15T13:57:01.7190329Z             {
2026-06-15T13:57:01.7190563Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7190739Z               "line": 577
2026-06-15T13:57:01.7190915Z             },
2026-06-15T13:57:01.7191082Z             {
2026-06-15T13:57:01.7191314Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7191491Z               "line": 650
2026-06-15T13:57:01.7191669Z             },
2026-06-15T13:57:01.7191832Z             {
2026-06-15T13:57:01.7192046Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7192223Z               "line": 794
2026-06-15T13:57:01.7192395Z             },
2026-06-15T13:57:01.7192566Z             {
2026-06-15T13:57:01.7192886Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.7193072Z               "line": 595
2026-06-15T13:57:01.7193252Z             },
2026-06-15T13:57:01.7193425Z             {
2026-06-15T13:57:01.7193655Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:57:01.7193834Z               "line": 399
2026-06-15T13:57:01.7194007Z             },
2026-06-15T13:57:01.7194167Z             {
2026-06-15T13:57:01.7194372Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7194551Z               "line": 7390
2026-06-15T13:57:01.7194827Z             },
2026-06-15T13:57:01.7195014Z             {
2026-06-15T13:57:01.7195209Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7195381Z               "line": 7714
2026-06-15T13:57:01.7195538Z             },
2026-06-15T13:57:01.7195700Z             {
2026-06-15T13:57:01.7195901Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7196077Z               "line": 8131
2026-06-15T13:57:01.7196283Z             }
2026-06-15T13:57:01.7196430Z           ]
2026-06-15T13:57:01.7196626Z         }
2026-06-15T13:57:01.7196786Z       }
2026-06-15T13:57:01.7196967Z     },
2026-06-15T13:57:01.7197151Z     {
2026-06-15T13:57:01.7197342Z       "id": "REQ-SHELL-2",
2026-06-15T13:57:01.7199973Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-15T13:57:01.7200169Z       "requiredStages": [
2026-06-15T13:57:01.7200350Z         "impl",
2026-06-15T13:57:01.7200527Z         "unit",
2026-06-15T13:57:01.7200684Z         "int"
2026-06-15T13:57:01.7200855Z       ],
2026-06-15T13:57:01.7201033Z       "stages": {
2026-06-15T13:57:01.7201208Z         "doc": {
2026-06-15T13:57:01.7201385Z           "complete": false,
2026-06-15T13:57:01.7201571Z           "evidence": []
2026-06-15T13:57:01.7201743Z         },
2026-06-15T13:57:01.7201918Z         "impl": {
2026-06-15T13:57:01.7202107Z           "complete": true,
2026-06-15T13:57:01.7202272Z           "evidence": [
2026-06-15T13:57:01.7202445Z             {
2026-06-15T13:57:01.7202679Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.7202859Z               "line": 214
2026-06-15T13:57:01.7203041Z             },
2026-06-15T13:57:01.7203207Z             {
2026-06-15T13:57:01.7203441Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:57:01.7203623Z               "line": 403
2026-06-15T13:57:01.7203794Z             },
2026-06-15T13:57:01.7203957Z             {
2026-06-15T13:57:01.7204181Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:57:01.7204361Z               "line": 250
2026-06-15T13:57:01.7204539Z             },
2026-06-15T13:57:01.7204713Z             {
2026-06-15T13:57:01.7204942Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.7205125Z               "line": 353
2026-06-15T13:57:01.7205298Z             },
2026-06-15T13:57:01.7205464Z             {
2026-06-15T13:57:01.7205693Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:57:01.7205866Z               "line": 30
2026-06-15T13:57:01.7206040Z             },
2026-06-15T13:57:01.7206209Z             {
2026-06-15T13:57:01.7206437Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:57:01.7206622Z               "line": 255
2026-06-15T13:57:01.7206786Z             },
2026-06-15T13:57:01.7206961Z             {
2026-06-15T13:57:01.7207187Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:57:01.7207365Z               "line": 291
2026-06-15T13:57:01.7207536Z             },
2026-06-15T13:57:01.7207711Z             {
2026-06-15T13:57:01.7208069Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:57:01.7208250Z               "line": 466
2026-06-15T13:57:01.7208423Z             },
2026-06-15T13:57:01.7208593Z             {
2026-06-15T13:57:01.7208822Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.7209072Z               "line": 348
2026-06-15T13:57:01.7209247Z             },
2026-06-15T13:57:01.7209419Z             {
2026-06-15T13:57:01.7209639Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T13:57:01.7209818Z               "line": 115
2026-06-15T13:57:01.7210095Z             },
2026-06-15T13:57:01.7210271Z             {
2026-06-15T13:57:01.7210504Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7210682Z               "line": 120
2026-06-15T13:57:01.7210853Z             },
2026-06-15T13:57:01.7211011Z             {
2026-06-15T13:57:01.7211230Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7211416Z               "line": 369
2026-06-15T13:57:01.7211588Z             },
2026-06-15T13:57:01.7211749Z             {
2026-06-15T13:57:01.7211983Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7212169Z               "line": 478
2026-06-15T13:57:01.7212335Z             },
2026-06-15T13:57:01.7212516Z             {
2026-06-15T13:57:01.7212728Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.7212905Z               "line": 24
2026-06-15T13:57:01.7213062Z             },
2026-06-15T13:57:01.7213234Z             {
2026-06-15T13:57:01.7213467Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.7213644Z               "line": 76
2026-06-15T13:57:01.7213816Z             },
2026-06-15T13:57:01.7213987Z             {
2026-06-15T13:57:01.7214216Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.7214392Z               "line": 154
2026-06-15T13:57:01.7214569Z             },
2026-06-15T13:57:01.7214746Z             {
2026-06-15T13:57:01.7214984Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.7215161Z               "line": 177
2026-06-15T13:57:01.7215321Z             },
2026-06-15T13:57:01.7215497Z             {
2026-06-15T13:57:01.7215729Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.7215905Z               "line": 273
2026-06-15T13:57:01.7216082Z             },
2026-06-15T13:57:01.7216244Z             {
2026-06-15T13:57:01.7216478Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.7216663Z               "line": 455
2026-06-15T13:57:01.7216844Z             },
2026-06-15T13:57:01.7217017Z             {
2026-06-15T13:57:01.7217235Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.7217418Z               "line": 537
2026-06-15T13:57:01.7217583Z             },
2026-06-15T13:57:01.7217761Z             {
2026-06-15T13:57:01.7217983Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T13:57:01.7218166Z               "line": 27
2026-06-15T13:57:01.7218338Z             },
2026-06-15T13:57:01.7218500Z             {
2026-06-15T13:57:01.7218734Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T13:57:01.7218905Z               "line": 43
2026-06-15T13:57:01.7219158Z             },
2026-06-15T13:57:01.7219326Z             {
2026-06-15T13:57:01.7219554Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.7219736Z               "line": 393
2026-06-15T13:57:01.7219908Z             },
2026-06-15T13:57:01.7220093Z             {
2026-06-15T13:57:01.7220299Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7220475Z               "line": 1676
2026-06-15T13:57:01.7220633Z             },
2026-06-15T13:57:01.7220802Z             {
2026-06-15T13:57:01.7221003Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7221179Z               "line": 5485
2026-06-15T13:57:01.7221355Z             },
2026-06-15T13:57:01.7221642Z             {
2026-06-15T13:57:01.7221853Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7222027Z               "line": 5546
2026-06-15T13:57:01.7222205Z             },
2026-06-15T13:57:01.7222376Z             {
2026-06-15T13:57:01.7222567Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7222758Z               "line": 5574
2026-06-15T13:57:01.7222933Z             },
2026-06-15T13:57:01.7223109Z             {
2026-06-15T13:57:01.7223303Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7223484Z               "line": 5628
2026-06-15T13:57:01.7223765Z             },
2026-06-15T13:57:01.7223936Z             {
2026-06-15T13:57:01.7224138Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7227391Z               "line": 5750
2026-06-15T13:57:01.7227606Z             },
2026-06-15T13:57:01.7227777Z             {
2026-06-15T13:57:01.7227997Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7228178Z               "line": 5810
2026-06-15T13:57:01.7228363Z             },
2026-06-15T13:57:01.7228538Z             {
2026-06-15T13:57:01.7228760Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:57:01.7228938Z               "line": 298
2026-06-15T13:57:01.7229224Z             },
2026-06-15T13:57:01.7229461Z             {
2026-06-15T13:57:01.7229681Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:57:01.7229853Z               "line": 339
2026-06-15T13:57:01.7230024Z             }
2026-06-15T13:57:01.7230187Z           ]
2026-06-15T13:57:01.7230357Z         },
2026-06-15T13:57:01.7230544Z         "int": {
2026-06-15T13:57:01.7230725Z           "complete": true,
2026-06-15T13:57:01.7230901Z           "evidence": [
2026-06-15T13:57:01.7231069Z             {
2026-06-15T13:57:01.7231310Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:57:01.7231478Z               "line": 702
2026-06-15T13:57:01.7231648Z             },
2026-06-15T13:57:01.7231812Z             {
2026-06-15T13:57:01.7232050Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.7232226Z               "line": 709
2026-06-15T13:57:01.7232403Z             },
2026-06-15T13:57:01.7232569Z             {
2026-06-15T13:57:01.7232794Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.7232974Z               "line": 1119
2026-06-15T13:57:01.7233150Z             },
2026-06-15T13:57:01.7233318Z             {
2026-06-15T13:57:01.7233569Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-15T13:57:01.7233741Z               "line": 18
2026-06-15T13:57:01.7233905Z             }
2026-06-15T13:57:01.7234064Z           ]
2026-06-15T13:57:01.7234234Z         },
2026-06-15T13:57:01.7234402Z         "unit": {
2026-06-15T13:57:01.7234582Z           "complete": true,
2026-06-15T13:57:01.7234764Z           "evidence": [
2026-06-15T13:57:01.7234936Z             {
2026-06-15T13:57:01.7235174Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:57:01.7235355Z               "line": 550
2026-06-15T13:57:01.7235522Z             },
2026-06-15T13:57:01.7235698Z             {
2026-06-15T13:57:01.7235919Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:57:01.7236094Z               "line": 796
2026-06-15T13:57:01.7236258Z             },
2026-06-15T13:57:01.7236441Z             {
2026-06-15T13:57:01.7236673Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7236844Z               "line": 683
2026-06-15T13:57:01.7237002Z             },
2026-06-15T13:57:01.7237159Z             {
2026-06-15T13:57:01.7237397Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7237579Z               "line": 732
2026-06-15T13:57:01.7237750Z             },
2026-06-15T13:57:01.7237913Z             {
2026-06-15T13:57:01.7238137Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7238317Z               "line": 756
2026-06-15T13:57:01.7238491Z             },
2026-06-15T13:57:01.7238815Z             {
2026-06-15T13:57:01.7239137Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.7239372Z               "line": 602
2026-06-15T13:57:01.7239541Z             },
2026-06-15T13:57:01.7239711Z             {
2026-06-15T13:57:01.7239940Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.7240113Z               "line": 623
2026-06-15T13:57:01.7240283Z             },
2026-06-15T13:57:01.7240460Z             {
2026-06-15T13:57:01.7240689Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.7240970Z               "line": 659
2026-06-15T13:57:01.7241142Z             },
2026-06-15T13:57:01.7241319Z             {
2026-06-15T13:57:01.7241548Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.7241725Z               "line": 713
2026-06-15T13:57:01.7241889Z             },
2026-06-15T13:57:01.7242062Z             {
2026-06-15T13:57:01.7242280Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.7242458Z               "line": 731
2026-06-15T13:57:01.7242629Z             },
2026-06-15T13:57:01.7242796Z             {
2026-06-15T13:57:01.7243020Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.7243186Z               "line": 765
2026-06-15T13:57:01.7243354Z             },
2026-06-15T13:57:01.7243525Z             {
2026-06-15T13:57:01.7243753Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:57:01.7243927Z               "line": 840
2026-06-15T13:57:01.7244087Z             },
2026-06-15T13:57:01.7244258Z             {
2026-06-15T13:57:01.7244484Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T13:57:01.7244662Z               "line": 80
2026-06-15T13:57:01.7244828Z             },
2026-06-15T13:57:01.7244996Z             {
2026-06-15T13:57:01.7245206Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7245376Z               "line": 6594
2026-06-15T13:57:01.7245554Z             },
2026-06-15T13:57:01.7245719Z             {
2026-06-15T13:57:01.7245925Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7246106Z               "line": 7468
2026-06-15T13:57:01.7246273Z             },
2026-06-15T13:57:01.7246436Z             {
2026-06-15T13:57:01.7246640Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7246813Z               "line": 7538
2026-06-15T13:57:01.7246973Z             },
2026-06-15T13:57:01.7247145Z             {
2026-06-15T13:57:01.7247342Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7247515Z               "line": 7576
2026-06-15T13:57:01.7247695Z             }
2026-06-15T13:57:01.7247868Z           ]
2026-06-15T13:57:01.7248029Z         }
2026-06-15T13:57:01.7248187Z       }
2026-06-15T13:57:01.7248358Z     },
2026-06-15T13:57:01.7248530Z     {
2026-06-15T13:57:01.7248712Z       "id": "REQ-SHELL-3",
2026-06-15T13:57:01.7251788Z       "title": "Drive channel (owner->shell, REST-only, never-spooled, latest-wins): the owner->shell mirror of sensory for continuous real-time control (scroll/crank/stick/avatar) — a [shell.drive] manifest vocab + EVENT_TYPE_DRIVE frame, delivered to the ONLINE binary only via a single live slot (a new frame supersedes an undelivered one — no spool, no queue, no replay on relink), dropped-with-diagnostic if the shell is offline; cross-node rides the ephemeral link (REST class), never the durable shell spool. Commands = discrete+durable; drive = continuous+ephemeral (CONTEXT:260, minted 2026-06-11 Gateway grill).",
2026-06-15T13:57:01.7251984Z       "requiredStages": [],
2026-06-15T13:57:01.7252160Z       "stages": {
2026-06-15T13:57:01.7252336Z         "doc": {
2026-06-15T13:57:01.7252516Z           "complete": false,
2026-06-15T13:57:01.7252698Z           "evidence": []
2026-06-15T13:57:01.7252865Z         },
2026-06-15T13:57:01.7253041Z         "impl": {
2026-06-15T13:57:01.7253223Z           "complete": false,
2026-06-15T13:57:01.7253398Z           "evidence": []
2026-06-15T13:57:01.7253566Z         },
2026-06-15T13:57:01.7253843Z         "int": {
2026-06-15T13:57:01.7254028Z           "complete": false,
2026-06-15T13:57:01.7254201Z           "evidence": []
2026-06-15T13:57:01.7254361Z         },
2026-06-15T13:57:01.7254539Z         "unit": {
2026-06-15T13:57:01.7254713Z           "complete": false,
2026-06-15T13:57:01.7254894Z           "evidence": []
2026-06-15T13:57:01.7255068Z         }
2026-06-15T13:57:01.7255241Z       }
2026-06-15T13:57:01.7255407Z     },
2026-06-15T13:57:01.7255579Z     {
2026-06-15T13:57:01.7255756Z       "id": "REQ-SHELL-4",
2026-06-15T13:57:01.7258728Z       "title": "Shell tunnel (reliable-ordered opaque byte stream): an owner<->shell link may hold a long-lived, reliable-ordered, link-bound QUIC stream pair carrying opaque wire protocol traffic the channel taxonomy must NOT reinterpret (first consumer usbip URB) — manifest opt-in, not enveloped, not MAC-framed, not spooled; the link lifecycle governs it (a link-break closes the tunnel). Reliable-ordered ⇒ congestion surfaces as lag never loss ⇒ acceptable only on-LAN: the on-LAN posture is documented and the tunnel is NOT proven cross-WAN (CONTEXT:262, minted 2026-06-11 Gateway grill; doyle gate C2).",
2026-06-15T13:57:01.7258918Z       "requiredStages": [],
2026-06-15T13:57:01.7259166Z       "stages": {
2026-06-15T13:57:01.7259334Z         "doc": {
2026-06-15T13:57:01.7259510Z           "complete": false,
2026-06-15T13:57:01.7259691Z           "evidence": []
2026-06-15T13:57:01.7259863Z         },
2026-06-15T13:57:01.7260034Z         "impl": {
2026-06-15T13:57:01.7260218Z           "complete": false,
2026-06-15T13:57:01.7260407Z           "evidence": []
2026-06-15T13:57:01.7260575Z         },
2026-06-15T13:57:01.7260736Z         "int": {
2026-06-15T13:57:01.7260932Z           "complete": false,
2026-06-15T13:57:01.7261108Z           "evidence": []
2026-06-15T13:57:01.7261275Z         },
2026-06-15T13:57:01.7261456Z         "unit": {
2026-06-15T13:57:01.7261633Z           "complete": false,
2026-06-15T13:57:01.7261814Z           "evidence": []
2026-06-15T13:57:01.7261990Z         }
2026-06-15T13:57:01.7262159Z       }
2026-06-15T13:57:01.7262329Z     },
2026-06-15T13:57:01.7262488Z     {
2026-06-15T13:57:01.7262677Z       "id": "REQ-SHELL-5",
2026-06-15T13:57:01.7264616Z       "title": "Shell ownership is owner-type-agnostic: any non-Shell endpoint type may own/spawn/drive/command/link a shell (Gateway the named first) — control-exclusivity keys on the owner endpoint_id, NEVER on the owner's endpoint type. No ownership path (mint, launch, owner-from-link, cmd, drive, tunnel, sleep/wake, owner-shutdown) inspects the owner's type (CONTEXT:264, ratified 2026-06-11 Gateway grill).",
2026-06-15T13:57:01.7264813Z       "requiredStages": [
2026-06-15T13:57:01.7264984Z         "doc",
2026-06-15T13:57:01.7265165Z         "impl"
2026-06-15T13:57:01.7265336Z       ],
2026-06-15T13:57:01.7265510Z       "stages": {
2026-06-15T13:57:01.7265691Z         "doc": {
2026-06-15T13:57:01.7265867Z           "complete": true,
2026-06-15T13:57:01.7266050Z           "evidence": [
2026-06-15T13:57:01.7266220Z             {
2026-06-15T13:57:01.7266411Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.7266592Z               "line": 264
2026-06-15T13:57:01.7266764Z             }
2026-06-15T13:57:01.7266931Z           ]
2026-06-15T13:57:01.7267108Z         },
2026-06-15T13:57:01.7267280Z         "impl": {
2026-06-15T13:57:01.7267469Z           "complete": true,
2026-06-15T13:57:01.7267647Z           "evidence": [
2026-06-15T13:57:01.7267822Z             {
2026-06-15T13:57:01.7268060Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:57:01.7268245Z               "line": 255
2026-06-15T13:57:01.7268420Z             }
2026-06-15T13:57:01.7268587Z           ]
2026-06-15T13:57:01.7268758Z         },
2026-06-15T13:57:01.7268921Z         "int": {
2026-06-15T13:57:01.7269198Z           "complete": false,
2026-06-15T13:57:01.7269378Z           "evidence": []
2026-06-15T13:57:01.7269551Z         },
2026-06-15T13:57:01.7269716Z         "unit": {
2026-06-15T13:57:01.7270050Z           "complete": false,
2026-06-15T13:57:01.7270228Z           "evidence": []
2026-06-15T13:57:01.7270399Z         }
2026-06-15T13:57:01.7270570Z       }
2026-06-15T13:57:01.7270731Z     },
2026-06-15T13:57:01.7270906Z     {
2026-06-15T13:57:01.7271091Z       "id": "REQ-START-1",
2026-06-15T13:57:01.7271450Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-15T13:57:01.7271639Z       "requiredStages": [
2026-06-15T13:57:01.7271798Z         "impl",
2026-06-15T13:57:01.7271968Z         "unit"
2026-06-15T13:57:01.7272236Z       ],
2026-06-15T13:57:01.7272414Z       "stages": {
2026-06-15T13:57:01.7272588Z         "doc": {
2026-06-15T13:57:01.7272766Z           "complete": false,
2026-06-15T13:57:01.7272951Z           "evidence": []
2026-06-15T13:57:01.7273118Z         },
2026-06-15T13:57:01.7273285Z         "impl": {
2026-06-15T13:57:01.7273461Z           "complete": true,
2026-06-15T13:57:01.7273646Z           "evidence": [
2026-06-15T13:57:01.7273823Z             {
2026-06-15T13:57:01.7274038Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T13:57:01.7274213Z               "line": 16
2026-06-15T13:57:01.7274381Z             }
2026-06-15T13:57:01.7274551Z           ]
2026-06-15T13:57:01.7274710Z         },
2026-06-15T13:57:01.7274885Z         "int": {
2026-06-15T13:57:01.7275072Z           "complete": false,
2026-06-15T13:57:01.7275249Z           "evidence": []
2026-06-15T13:57:01.7275420Z         },
2026-06-15T13:57:01.7275593Z         "unit": {
2026-06-15T13:57:01.7275767Z           "complete": true,
2026-06-15T13:57:01.7275957Z           "evidence": [
2026-06-15T13:57:01.7276122Z             {
2026-06-15T13:57:01.7276333Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T13:57:01.7276508Z               "line": 43
2026-06-15T13:57:01.7276681Z             },
2026-06-15T13:57:01.7276842Z             {
2026-06-15T13:57:01.7277062Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T13:57:01.7277234Z               "line": 59
2026-06-15T13:57:01.7277400Z             }
2026-06-15T13:57:01.7277573Z           ]
2026-06-15T13:57:01.7277738Z         }
2026-06-15T13:57:01.7277911Z       }
2026-06-15T13:57:01.7278067Z     },
2026-06-15T13:57:01.7278231Z     {
2026-06-15T13:57:01.7278407Z       "id": "REQ-START-2",
2026-06-15T13:57:01.7278672Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-15T13:57:01.7278863Z       "requiredStages": [
2026-06-15T13:57:01.7279109Z         "impl",
2026-06-15T13:57:01.7279290Z         "unit",
2026-06-15T13:57:01.7279458Z         "int"
2026-06-15T13:57:01.7279632Z       ],
2026-06-15T13:57:01.7279806Z       "stages": {
2026-06-15T13:57:01.7279981Z         "doc": {
2026-06-15T13:57:01.7280167Z           "complete": false,
2026-06-15T13:57:01.7280339Z           "evidence": []
2026-06-15T13:57:01.7280510Z         },
2026-06-15T13:57:01.7280683Z         "impl": {
2026-06-15T13:57:01.7280863Z           "complete": true,
2026-06-15T13:57:01.7281036Z           "evidence": [
2026-06-15T13:57:01.7281210Z             {
2026-06-15T13:57:01.7281439Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.7281617Z               "line": 16
2026-06-15T13:57:01.7281791Z             },
2026-06-15T13:57:01.7281961Z             {
2026-06-15T13:57:01.7282180Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.7282358Z               "line": 100
2026-06-15T13:57:01.7282524Z             },
2026-06-15T13:57:01.7282692Z             {
2026-06-15T13:57:01.7282910Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.7283087Z               "line": 240
2026-06-15T13:57:01.7283250Z             }
2026-06-15T13:57:01.7283425Z           ]
2026-06-15T13:57:01.7283584Z         },
2026-06-15T13:57:01.7283759Z         "int": {
2026-06-15T13:57:01.7283947Z           "complete": true,
2026-06-15T13:57:01.7284116Z           "evidence": [
2026-06-15T13:57:01.7284288Z             {
2026-06-15T13:57:01.7284506Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:57:01.7284797Z               "line": 186
2026-06-15T13:57:01.7284970Z             }
2026-06-15T13:57:01.7285136Z           ]
2026-06-15T13:57:01.7285313Z         },
2026-06-15T13:57:01.7285480Z         "unit": {
2026-06-15T13:57:01.7285675Z           "complete": true,
2026-06-15T13:57:01.7285848Z           "evidence": [
2026-06-15T13:57:01.7286013Z             {
2026-06-15T13:57:01.7286228Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.7286413Z               "line": 468
2026-06-15T13:57:01.7286579Z             },
2026-06-15T13:57:01.7286845Z             {
2026-06-15T13:57:01.7287059Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.7287236Z               "line": 501
2026-06-15T13:57:01.7287412Z             }
2026-06-15T13:57:01.7287574Z           ]
2026-06-15T13:57:01.7287747Z         }
2026-06-15T13:57:01.7287913Z       }
2026-06-15T13:57:01.7288081Z     },
2026-06-15T13:57:01.7288251Z     {
2026-06-15T13:57:01.7288438Z       "id": "REQ-START-3",
2026-06-15T13:57:01.7288767Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-15T13:57:01.7289035Z       "requiredStages": [
2026-06-15T13:57:01.7289204Z         "impl",
2026-06-15T13:57:01.7289371Z         "unit",
2026-06-15T13:57:01.7289540Z         "int"
2026-06-15T13:57:01.7289712Z       ],
2026-06-15T13:57:01.7289887Z       "stages": {
2026-06-15T13:57:01.7290061Z         "doc": {
2026-06-15T13:57:01.7290245Z           "complete": false,
2026-06-15T13:57:01.7290418Z           "evidence": []
2026-06-15T13:57:01.7290598Z         },
2026-06-15T13:57:01.7290770Z         "impl": {
2026-06-15T13:57:01.7290981Z           "complete": true,
2026-06-15T13:57:01.7291166Z           "evidence": [
2026-06-15T13:57:01.7291334Z             {
2026-06-15T13:57:01.7291578Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T13:57:01.7291756Z               "line": 23
2026-06-15T13:57:01.7291923Z             },
2026-06-15T13:57:01.7292092Z             {
2026-06-15T13:57:01.7292327Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T13:57:01.7292502Z               "line": 205
2026-06-15T13:57:01.7292675Z             },
2026-06-15T13:57:01.7292836Z             {
2026-06-15T13:57:01.7293065Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T13:57:01.7293252Z               "line": 221
2026-06-15T13:57:01.7293427Z             },
2026-06-15T13:57:01.7293604Z             {
2026-06-15T13:57:01.7293820Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.7294014Z               "line": 17
2026-06-15T13:57:01.7294192Z             },
2026-06-15T13:57:01.7294367Z             {
2026-06-15T13:57:01.7294595Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.7294771Z               "line": 43
2026-06-15T13:57:01.7294947Z             },
2026-06-15T13:57:01.7295119Z             {
2026-06-15T13:57:01.7295353Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.7295539Z               "line": 101
2026-06-15T13:57:01.7295706Z             }
2026-06-15T13:57:01.7295882Z           ]
2026-06-15T13:57:01.7296040Z         },
2026-06-15T13:57:01.7296216Z         "int": {
2026-06-15T13:57:01.7296408Z           "complete": true,
2026-06-15T13:57:01.7296588Z           "evidence": [
2026-06-15T13:57:01.7296765Z             {
2026-06-15T13:57:01.7296997Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:57:01.7297176Z               "line": 440
2026-06-15T13:57:01.7297352Z             }
2026-06-15T13:57:01.7297524Z           ]
2026-06-15T13:57:01.7297696Z         },
2026-06-15T13:57:01.7297872Z         "unit": {
2026-06-15T13:57:01.7298059Z           "complete": true,
2026-06-15T13:57:01.7298234Z           "evidence": [
2026-06-15T13:57:01.7298406Z             {
2026-06-15T13:57:01.7298631Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T13:57:01.7298826Z               "line": 331
2026-06-15T13:57:01.7299064Z             },
2026-06-15T13:57:01.7299351Z             {
2026-06-15T13:57:01.7299580Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T13:57:01.7299750Z               "line": 352
2026-06-15T13:57:01.7299926Z             },
2026-06-15T13:57:01.7300096Z             {
2026-06-15T13:57:01.7300311Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T13:57:01.7300486Z               "line": 362
2026-06-15T13:57:01.7300663Z             },
2026-06-15T13:57:01.7300834Z             {
2026-06-15T13:57:01.7301054Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.7301335Z               "line": 469
2026-06-15T13:57:01.7301508Z             },
2026-06-15T13:57:01.7301678Z             {
2026-06-15T13:57:01.7301894Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.7302069Z               "line": 502
2026-06-15T13:57:01.7302233Z             },
2026-06-15T13:57:01.7302392Z             {
2026-06-15T13:57:01.7302610Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:57:01.7302791Z               "line": 510
2026-06-15T13:57:01.7302967Z             }
2026-06-15T13:57:01.7303135Z           ]
2026-06-15T13:57:01.7303310Z         }
2026-06-15T13:57:01.7303483Z       }
2026-06-15T13:57:01.7303648Z     },
2026-06-15T13:57:01.7303817Z     {
2026-06-15T13:57:01.7303997Z       "id": "REQ-START-4",
2026-06-15T13:57:01.7304264Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-15T13:57:01.7304447Z       "requiredStages": [
2026-06-15T13:57:01.7304617Z         "impl",
2026-06-15T13:57:01.7304790Z         "unit"
2026-06-15T13:57:01.7304966Z       ],
2026-06-15T13:57:01.7305142Z       "stages": {
2026-06-15T13:57:01.7305312Z         "doc": {
2026-06-15T13:57:01.7305508Z           "complete": false,
2026-06-15T13:57:01.7305679Z           "evidence": []
2026-06-15T13:57:01.7305855Z         },
2026-06-15T13:57:01.7306038Z         "impl": {
2026-06-15T13:57:01.7306208Z           "complete": true,
2026-06-15T13:57:01.7306386Z           "evidence": [
2026-06-15T13:57:01.7306557Z             {
2026-06-15T13:57:01.7306781Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.7306958Z               "line": 461
2026-06-15T13:57:01.7307129Z             }
2026-06-15T13:57:01.7307307Z           ]
2026-06-15T13:57:01.7307467Z         },
2026-06-15T13:57:01.7307643Z         "int": {
2026-06-15T13:57:01.7307826Z           "complete": false,
2026-06-15T13:57:01.7308004Z           "evidence": []
2026-06-15T13:57:01.7308169Z         },
2026-06-15T13:57:01.7308347Z         "unit": {
2026-06-15T13:57:01.7308532Z           "complete": true,
2026-06-15T13:57:01.7308718Z           "evidence": [
2026-06-15T13:57:01.7308891Z             {
2026-06-15T13:57:01.7309181Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.7309366Z               "line": 900
2026-06-15T13:57:01.7309535Z             }
2026-06-15T13:57:01.7309710Z           ]
2026-06-15T13:57:01.7309887Z         }
2026-06-15T13:57:01.7310044Z       }
2026-06-15T13:57:01.7310207Z     },
2026-06-15T13:57:01.7310367Z     {
2026-06-15T13:57:01.7310557Z       "id": "REQ-STORE-1",
2026-06-15T13:57:01.7312024Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-15T13:57:01.7312215Z       "requiredStages": [
2026-06-15T13:57:01.7312393Z         "impl",
2026-06-15T13:57:01.7312562Z         "unit"
2026-06-15T13:57:01.7312736Z       ],
2026-06-15T13:57:01.7312910Z       "stages": {
2026-06-15T13:57:01.7313086Z         "doc": {
2026-06-15T13:57:01.7313274Z           "complete": false,
2026-06-15T13:57:01.7313452Z           "evidence": []
2026-06-15T13:57:01.7313627Z         },
2026-06-15T13:57:01.7313795Z         "impl": {
2026-06-15T13:57:01.7313981Z           "complete": true,
2026-06-15T13:57:01.7314262Z           "evidence": [
2026-06-15T13:57:01.7314433Z             {
2026-06-15T13:57:01.7314682Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.7314853Z               "line": 23
2026-06-15T13:57:01.7315021Z             },
2026-06-15T13:57:01.7315177Z             {
2026-06-15T13:57:01.7315411Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.7315589Z               "line": 46
2026-06-15T13:57:01.7315763Z             },
2026-06-15T13:57:01.7315934Z             {
2026-06-15T13:57:01.7316158Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.7316468Z               "line": 97
2026-06-15T13:57:01.7316640Z             },
2026-06-15T13:57:01.7316816Z             {
2026-06-15T13:57:01.7317046Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.7317233Z               "line": 125
2026-06-15T13:57:01.7317403Z             },
2026-06-15T13:57:01.7317571Z             {
2026-06-15T13:57:01.7317814Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.7317994Z               "line": 181
2026-06-15T13:57:01.7318155Z             },
2026-06-15T13:57:01.7318325Z             {
2026-06-15T13:57:01.7318549Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.7318729Z               "line": 205
2026-06-15T13:57:01.7318888Z             },
2026-06-15T13:57:01.7319132Z             {
2026-06-15T13:57:01.7319364Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.7319546Z               "line": 441
2026-06-15T13:57:01.7319722Z             },
2026-06-15T13:57:01.7319889Z             {
2026-06-15T13:57:01.7320128Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.7320303Z               "line": 25
2026-06-15T13:57:01.7320476Z             },
2026-06-15T13:57:01.7320652Z             {
2026-06-15T13:57:01.7320889Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.7321061Z               "line": 120
2026-06-15T13:57:01.7321230Z             },
2026-06-15T13:57:01.7321402Z             {
2026-06-15T13:57:01.7321635Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.7321817Z               "line": 148
2026-06-15T13:57:01.7321979Z             },
2026-06-15T13:57:01.7322136Z             {
2026-06-15T13:57:01.7322375Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.7322551Z               "line": 165
2026-06-15T13:57:01.7322727Z             },
2026-06-15T13:57:01.7322889Z             {
2026-06-15T13:57:01.7323132Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.7323306Z               "line": 180
2026-06-15T13:57:01.7323479Z             },
2026-06-15T13:57:01.7323651Z             {
2026-06-15T13:57:01.7323878Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.7324059Z               "line": 198
2026-06-15T13:57:01.7324226Z             },
2026-06-15T13:57:01.7324402Z             {
2026-06-15T13:57:01.7324627Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.7324807Z               "line": 207
2026-06-15T13:57:01.7324979Z             },
2026-06-15T13:57:01.7325151Z             {
2026-06-15T13:57:01.7325380Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T13:57:01.7325552Z               "line": 16
2026-06-15T13:57:01.7325728Z             },
2026-06-15T13:57:01.7325900Z             {
2026-06-15T13:57:01.7326125Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T13:57:01.7326314Z               "line": 63
2026-06-15T13:57:01.7326476Z             }
2026-06-15T13:57:01.7326647Z           ]
2026-06-15T13:57:01.7326814Z         },
2026-06-15T13:57:01.7326995Z         "int": {
2026-06-15T13:57:01.7327182Z           "complete": false,
2026-06-15T13:57:01.7327357Z           "evidence": []
2026-06-15T13:57:01.7327534Z         },
2026-06-15T13:57:01.7327701Z         "unit": {
2026-06-15T13:57:01.7327954Z           "complete": true,
2026-06-15T13:57:01.7328239Z           "evidence": [
2026-06-15T13:57:01.7328413Z             {
2026-06-15T13:57:01.7328644Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.7328824Z               "line": 558
2026-06-15T13:57:01.7329081Z             },
2026-06-15T13:57:01.7329247Z             {
2026-06-15T13:57:01.7329482Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.7329658Z               "line": 568
2026-06-15T13:57:01.7329839Z             },
2026-06-15T13:57:01.7330001Z             {
2026-06-15T13:57:01.7330335Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.7330515Z               "line": 590
2026-06-15T13:57:01.7330679Z             },
2026-06-15T13:57:01.7330849Z             {
2026-06-15T13:57:01.7331078Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.7331256Z               "line": 606
2026-06-15T13:57:01.7331430Z             },
2026-06-15T13:57:01.7331592Z             {
2026-06-15T13:57:01.7331823Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:57:01.7331996Z               "line": 629
2026-06-15T13:57:01.7332171Z             },
2026-06-15T13:57:01.7332339Z             {
2026-06-15T13:57:01.7332578Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.7332762Z               "line": 472
2026-06-15T13:57:01.7332921Z             },
2026-06-15T13:57:01.7333092Z             {
2026-06-15T13:57:01.7333321Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:57:01.7333503Z               "line": 507
2026-06-15T13:57:01.7333678Z             },
2026-06-15T13:57:01.7333852Z             {
2026-06-15T13:57:01.7334072Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T13:57:01.7334253Z               "line": 120
2026-06-15T13:57:01.7334418Z             },
2026-06-15T13:57:01.7334587Z             {
2026-06-15T13:57:01.7334816Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T13:57:01.7334996Z               "line": 128
2026-06-15T13:57:01.7335168Z             }
2026-06-15T13:57:01.7335344Z           ]
2026-06-15T13:57:01.7335516Z         }
2026-06-15T13:57:01.7335692Z       }
2026-06-15T13:57:01.7335854Z     },
2026-06-15T13:57:01.7336031Z     {
2026-06-15T13:57:01.7336226Z       "id": "REQ-SUBNET-1",
2026-06-15T13:57:01.7336785Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-15T13:57:01.7336978Z       "requiredStages": [
2026-06-15T13:57:01.7337146Z         "impl",
2026-06-15T13:57:01.7337326Z         "unit"
2026-06-15T13:57:01.7337494Z       ],
2026-06-15T13:57:01.7337671Z       "stages": {
2026-06-15T13:57:01.7337842Z         "doc": {
2026-06-15T13:57:01.7338028Z           "complete": false,
2026-06-15T13:57:01.7338213Z           "evidence": []
2026-06-15T13:57:01.7338376Z         },
2026-06-15T13:57:01.7338556Z         "impl": {
2026-06-15T13:57:01.7338743Z           "complete": true,
2026-06-15T13:57:01.7338924Z           "evidence": [
2026-06-15T13:57:01.7339176Z             {
2026-06-15T13:57:01.7339417Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.7339598Z               "line": 281
2026-06-15T13:57:01.7339765Z             },
2026-06-15T13:57:01.7339936Z             {
2026-06-15T13:57:01.7340179Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.7340361Z               "line": 599
2026-06-15T13:57:01.7340533Z             },
2026-06-15T13:57:01.7340704Z             {
2026-06-15T13:57:01.7340919Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7341094Z               "line": 2961
2026-06-15T13:57:01.7341267Z             },
2026-06-15T13:57:01.7341433Z             {
2026-06-15T13:57:01.7341634Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7341821Z               "line": 3271
2026-06-15T13:57:01.7341986Z             },
2026-06-15T13:57:01.7342157Z             {
2026-06-15T13:57:01.7342465Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7342660Z               "line": 3290
2026-06-15T13:57:01.7342828Z             },
2026-06-15T13:57:01.7342993Z             {
2026-06-15T13:57:01.7343194Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7343375Z               "line": 3354
2026-06-15T13:57:01.7343556Z             },
2026-06-15T13:57:01.7343719Z             {
2026-06-15T13:57:01.7343924Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7344101Z               "line": 3396
2026-06-15T13:57:01.7344392Z             },
2026-06-15T13:57:01.7344567Z             {
2026-06-15T13:57:01.7344762Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7344945Z               "line": 3585
2026-06-15T13:57:01.7345108Z             },
2026-06-15T13:57:01.7345274Z             {
2026-06-15T13:57:01.7345466Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7345647Z               "line": 3655
2026-06-15T13:57:01.7345833Z             },
2026-06-15T13:57:01.7346005Z             {
2026-06-15T13:57:01.7346209Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7346381Z               "line": 3879
2026-06-15T13:57:01.7346557Z             },
2026-06-15T13:57:01.7346729Z             {
2026-06-15T13:57:01.7346925Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7347100Z               "line": 4516
2026-06-15T13:57:01.7347269Z             },
2026-06-15T13:57:01.7347439Z             {
2026-06-15T13:57:01.7347639Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:57:01.7347829Z               "line": 418
2026-06-15T13:57:01.7347988Z             }
2026-06-15T13:57:01.7348162Z           ]
2026-06-15T13:57:01.7348335Z         },
2026-06-15T13:57:01.7348502Z         "int": {
2026-06-15T13:57:01.7348688Z           "complete": false,
2026-06-15T13:57:01.7348870Z           "evidence": []
2026-06-15T13:57:01.7349121Z         },
2026-06-15T13:57:01.7349284Z         "unit": {
2026-06-15T13:57:01.7349465Z           "complete": true,
2026-06-15T13:57:01.7349641Z           "evidence": [
2026-06-15T13:57:01.7349812Z             {
2026-06-15T13:57:01.7350057Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.7350235Z               "line": 1477
2026-06-15T13:57:01.7350410Z             },
2026-06-15T13:57:01.7350578Z             {
2026-06-15T13:57:01.7350783Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7350968Z               "line": 8378
2026-06-15T13:57:01.7351136Z             },
2026-06-15T13:57:01.7351312Z             {
2026-06-15T13:57:01.7351522Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7351708Z               "line": 8548
2026-06-15T13:57:01.7351879Z             },
2026-06-15T13:57:01.7352052Z             {
2026-06-15T13:57:01.7352261Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7352433Z               "line": 8555
2026-06-15T13:57:01.7352603Z             },
2026-06-15T13:57:01.7352770Z             {
2026-06-15T13:57:01.7352981Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7353159Z               "line": 8608
2026-06-15T13:57:01.7353340Z             },
2026-06-15T13:57:01.7353507Z             {
2026-06-15T13:57:01.7353703Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7353882Z               "line": 8625
2026-06-15T13:57:01.7354051Z             },
2026-06-15T13:57:01.7354221Z             {
2026-06-15T13:57:01.7354417Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7354599Z               "line": 8655
2026-06-15T13:57:01.7354779Z             },
2026-06-15T13:57:01.7354952Z             {
2026-06-15T13:57:01.7355155Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7355332Z               "line": 8754
2026-06-15T13:57:01.7355510Z             },
2026-06-15T13:57:01.7355673Z             {
2026-06-15T13:57:01.7355868Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7356045Z               "line": 8905
2026-06-15T13:57:01.7356326Z             }
2026-06-15T13:57:01.7356502Z           ]
2026-06-15T13:57:01.7356674Z         }
2026-06-15T13:57:01.7356841Z       }
2026-06-15T13:57:01.7357008Z     },
2026-06-15T13:57:01.7357180Z     {
2026-06-15T13:57:01.7357370Z       "id": "REQ-SUBNET-2",
2026-06-15T13:57:01.7360965Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-15T13:57:01.7361214Z       "requiredStages": [
2026-06-15T13:57:01.7361391Z         "impl",
2026-06-15T13:57:01.7361566Z         "unit",
2026-06-15T13:57:01.7361891Z         "int"
2026-06-15T13:57:01.7362063Z       ],
2026-06-15T13:57:01.7362243Z       "stages": {
2026-06-15T13:57:01.7362411Z         "doc": {
2026-06-15T13:57:01.7362612Z           "complete": true,
2026-06-15T13:57:01.7362787Z           "evidence": [
2026-06-15T13:57:01.7362961Z             {
2026-06-15T13:57:01.7363263Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-15T13:57:01.7363447Z               "line": 60
2026-06-15T13:57:01.7363618Z             }
2026-06-15T13:57:01.7363785Z           ]
2026-06-15T13:57:01.7363953Z         },
2026-06-15T13:57:01.7364123Z         "impl": {
2026-06-15T13:57:01.7364301Z           "complete": true,
2026-06-15T13:57:01.7364476Z           "evidence": [
2026-06-15T13:57:01.7364639Z             {
2026-06-15T13:57:01.7364859Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.7365034Z               "line": 837
2026-06-15T13:57:01.7365207Z             },
2026-06-15T13:57:01.7365368Z             {
2026-06-15T13:57:01.7365598Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.7365767Z               "line": 1190
2026-06-15T13:57:01.7365929Z             },
2026-06-15T13:57:01.7366103Z             {
2026-06-15T13:57:01.7366323Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.7366501Z               "line": 538
2026-06-15T13:57:01.7366666Z             },
2026-06-15T13:57:01.7366835Z             {
2026-06-15T13:57:01.7367057Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:57:01.7367229Z               "line": 669
2026-06-15T13:57:01.7367401Z             },
2026-06-15T13:57:01.7367563Z             {
2026-06-15T13:57:01.7367793Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.7367963Z               "line": 26
2026-06-15T13:57:01.7368137Z             },
2026-06-15T13:57:01.7368297Z             {
2026-06-15T13:57:01.7368521Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.7368702Z               "line": 60
2026-06-15T13:57:01.7368878Z             },
2026-06-15T13:57:01.7369141Z             {
2026-06-15T13:57:01.7369375Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.7369555Z               "line": 168
2026-06-15T13:57:01.7369728Z             },
2026-06-15T13:57:01.7369893Z             {
2026-06-15T13:57:01.7370123Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.7370300Z               "line": 295
2026-06-15T13:57:01.7370475Z             },
2026-06-15T13:57:01.7370629Z             {
2026-06-15T13:57:01.7370860Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.7371036Z               "line": 417
2026-06-15T13:57:01.7371211Z             },
2026-06-15T13:57:01.7371379Z             {
2026-06-15T13:57:01.7371622Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:57:01.7371798Z               "line": 252
2026-06-15T13:57:01.7371965Z             },
2026-06-15T13:57:01.7372136Z             {
2026-06-15T13:57:01.7372337Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7372513Z               "line": 3317
2026-06-15T13:57:01.7372690Z             },
2026-06-15T13:57:01.7372843Z             {
2026-06-15T13:57:01.7373057Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7373225Z               "line": 3818
2026-06-15T13:57:01.7373395Z             },
2026-06-15T13:57:01.7373676Z             {
2026-06-15T13:57:01.7373875Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7374054Z               "line": 4447
2026-06-15T13:57:01.7374222Z             }
2026-06-15T13:57:01.7374397Z           ]
2026-06-15T13:57:01.7374570Z         },
2026-06-15T13:57:01.7374741Z         "int": {
2026-06-15T13:57:01.7374928Z           "complete": true,
2026-06-15T13:57:01.7375104Z           "evidence": [
2026-06-15T13:57:01.7375276Z             {
2026-06-15T13:57:01.7375514Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-15T13:57:01.7375695Z               "line": 22
2026-06-15T13:57:01.7375995Z             },
2026-06-15T13:57:01.7376172Z             {
2026-06-15T13:57:01.7376409Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.7376578Z               "line": 576
2026-06-15T13:57:01.7376750Z             },
2026-06-15T13:57:01.7376912Z             {
2026-06-15T13:57:01.7377141Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.7377327Z               "line": 793
2026-06-15T13:57:01.7377494Z             }
2026-06-15T13:57:01.7377667Z           ]
2026-06-15T13:57:01.7377838Z         },
2026-06-15T13:57:01.7378010Z         "unit": {
2026-06-15T13:57:01.7378190Z           "complete": true,
2026-06-15T13:57:01.7378377Z           "evidence": [
2026-06-15T13:57:01.7378533Z             {
2026-06-15T13:57:01.7378767Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.7379035Z               "line": 586
2026-06-15T13:57:01.7379209Z             },
2026-06-15T13:57:01.7379378Z             {
2026-06-15T13:57:01.7379591Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7379767Z               "line": 8418
2026-06-15T13:57:01.7379940Z             },
2026-06-15T13:57:01.7380110Z             {
2026-06-15T13:57:01.7380311Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7380492Z               "line": 9112
2026-06-15T13:57:01.7380663Z             }
2026-06-15T13:57:01.7380826Z           ]
2026-06-15T13:57:01.7380997Z         }
2026-06-15T13:57:01.7381165Z       }
2026-06-15T13:57:01.7381331Z     },
2026-06-15T13:57:01.7381502Z     {
2026-06-15T13:57:01.7381676Z       "id": "REQ-SUBNET-3",
2026-06-15T13:57:01.7382192Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-15T13:57:01.7382367Z       "requiredStages": [
2026-06-15T13:57:01.7382540Z         "impl",
2026-06-15T13:57:01.7382715Z         "unit"
2026-06-15T13:57:01.7382883Z       ],
2026-06-15T13:57:01.7383063Z       "stages": {
2026-06-15T13:57:01.7383235Z         "doc": {
2026-06-15T13:57:01.7383417Z           "complete": false,
2026-06-15T13:57:01.7383593Z           "evidence": []
2026-06-15T13:57:01.7383771Z         },
2026-06-15T13:57:01.7383951Z         "impl": {
2026-06-15T13:57:01.7384128Z           "complete": true,
2026-06-15T13:57:01.7384302Z           "evidence": [
2026-06-15T13:57:01.7384468Z             {
2026-06-15T13:57:01.7384720Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.7384891Z               "line": 152
2026-06-15T13:57:01.7385054Z             },
2026-06-15T13:57:01.7385220Z             {
2026-06-15T13:57:01.7385454Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.7385631Z               "line": 299
2026-06-15T13:57:01.7385793Z             },
2026-06-15T13:57:01.7385950Z             {
2026-06-15T13:57:01.7386193Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.7386365Z               "line": 437
2026-06-15T13:57:01.7386541Z             },
2026-06-15T13:57:01.7386704Z             {
2026-06-15T13:57:01.7386950Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.7387129Z               "line": 480
2026-06-15T13:57:01.7387301Z             },
2026-06-15T13:57:01.7387472Z             {
2026-06-15T13:57:01.7387711Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.7387882Z               "line": 125
2026-06-15T13:57:01.7388163Z             },
2026-06-15T13:57:01.7388340Z             {
2026-06-15T13:57:01.7388570Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.7388741Z               "line": 253
2026-06-15T13:57:01.7388904Z             },
2026-06-15T13:57:01.7389161Z             {
2026-06-15T13:57:01.7389385Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.7389567Z               "line": 264
2026-06-15T13:57:01.7389741Z             },
2026-06-15T13:57:01.7389908Z             {
2026-06-15T13:57:01.7390266Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.7390437Z               "line": 285
2026-06-15T13:57:01.7390605Z             },
2026-06-15T13:57:01.7390771Z             {
2026-06-15T13:57:01.7390999Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.7391187Z               "line": 589
2026-06-15T13:57:01.7391352Z             },
2026-06-15T13:57:01.7391525Z             {
2026-06-15T13:57:01.7391759Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.7391943Z               "line": 648
2026-06-15T13:57:01.7392110Z             },
2026-06-15T13:57:01.7392279Z             {
2026-06-15T13:57:01.7392532Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:57:01.7392708Z               "line": 61
2026-06-15T13:57:01.7392880Z             },
2026-06-15T13:57:01.7393043Z             {
2026-06-15T13:57:01.7393280Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:57:01.7393457Z               "line": 90
2026-06-15T13:57:01.7393633Z             },
2026-06-15T13:57:01.7393805Z             {
2026-06-15T13:57:01.7394045Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:57:01.7394224Z               "line": 125
2026-06-15T13:57:01.7394397Z             },
2026-06-15T13:57:01.7394563Z             {
2026-06-15T13:57:01.7394801Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-15T13:57:01.7394982Z               "line": 9
2026-06-15T13:57:01.7395156Z             },
2026-06-15T13:57:01.7395314Z             {
2026-06-15T13:57:01.7395517Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7395695Z               "line": 3655
2026-06-15T13:57:01.7395866Z             },
2026-06-15T13:57:01.7396034Z             {
2026-06-15T13:57:01.7396244Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:57:01.7396434Z               "line": 445
2026-06-15T13:57:01.7396601Z             }
2026-06-15T13:57:01.7396772Z           ]
2026-06-15T13:57:01.7396954Z         },
2026-06-15T13:57:01.7397115Z         "int": {
2026-06-15T13:57:01.7397292Z           "complete": false,
2026-06-15T13:57:01.7397462Z           "evidence": []
2026-06-15T13:57:01.7397623Z         },
2026-06-15T13:57:01.7397799Z         "unit": {
2026-06-15T13:57:01.7397980Z           "complete": true,
2026-06-15T13:57:01.7398152Z           "evidence": [
2026-06-15T13:57:01.7398323Z             {
2026-06-15T13:57:01.7398572Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.7398748Z               "line": 1304
2026-06-15T13:57:01.7398924Z             },
2026-06-15T13:57:01.7399177Z             {
2026-06-15T13:57:01.7399426Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.7399611Z               "line": 1606
2026-06-15T13:57:01.7399774Z             },
2026-06-15T13:57:01.7399950Z             {
2026-06-15T13:57:01.7400169Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:57:01.7400344Z               "line": 888
2026-06-15T13:57:01.7400521Z             },
2026-06-15T13:57:01.7400682Z             {
2026-06-15T13:57:01.7400911Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.7401079Z               "line": 959
2026-06-15T13:57:01.7401245Z             },
2026-06-15T13:57:01.7401413Z             {
2026-06-15T13:57:01.7401646Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.7401927Z               "line": 1009
2026-06-15T13:57:01.7402095Z             },
2026-06-15T13:57:01.7402266Z             {
2026-06-15T13:57:01.7402493Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.7402670Z               "line": 1068
2026-06-15T13:57:01.7402834Z             },
2026-06-15T13:57:01.7403007Z             {
2026-06-15T13:57:01.7403244Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:57:01.7403417Z               "line": 234
2026-06-15T13:57:01.7403588Z             },
2026-06-15T13:57:01.7403755Z             {
2026-06-15T13:57:01.7404089Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-15T13:57:01.7404266Z               "line": 49
2026-06-15T13:57:01.7404441Z             },
2026-06-15T13:57:01.7404614Z             {
2026-06-15T13:57:01.7404813Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7404980Z               "line": 8754
2026-06-15T13:57:01.7405148Z             },
2026-06-15T13:57:01.7405328Z             {
2026-06-15T13:57:01.7405523Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7405697Z               "line": 8860
2026-06-15T13:57:01.7405864Z             },
2026-06-15T13:57:01.7406030Z             {
2026-06-15T13:57:01.7406236Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7406407Z               "line": 9078
2026-06-15T13:57:01.7406584Z             }
2026-06-15T13:57:01.7406751Z           ]
2026-06-15T13:57:01.7406927Z         }
2026-06-15T13:57:01.7407099Z       }
2026-06-15T13:57:01.7407260Z     },
2026-06-15T13:57:01.7407434Z     {
2026-06-15T13:57:01.7407623Z       "id": "REQ-SUBNET-4",
2026-06-15T13:57:01.7408179Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-15T13:57:01.7408368Z       "requiredStages": [
2026-06-15T13:57:01.7408545Z         "impl",
2026-06-15T13:57:01.7408717Z         "unit"
2026-06-15T13:57:01.7408874Z       ],
2026-06-15T13:57:01.7409132Z       "stages": {
2026-06-15T13:57:01.7409303Z         "doc": {
2026-06-15T13:57:01.7409489Z           "complete": true,
2026-06-15T13:57:01.7409661Z           "evidence": [
2026-06-15T13:57:01.7409837Z             {
2026-06-15T13:57:01.7410128Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-15T13:57:01.7410296Z               "line": 60
2026-06-15T13:57:01.7410476Z             }
2026-06-15T13:57:01.7410640Z           ]
2026-06-15T13:57:01.7410814Z         },
2026-06-15T13:57:01.7410981Z         "impl": {
2026-06-15T13:57:01.7411171Z           "complete": true,
2026-06-15T13:57:01.7411353Z           "evidence": [
2026-06-15T13:57:01.7411519Z             {
2026-06-15T13:57:01.7411720Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7411891Z               "line": 2961
2026-06-15T13:57:01.7412068Z             },
2026-06-15T13:57:01.7412236Z             {
2026-06-15T13:57:01.7412440Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7412612Z               "line": 4414
2026-06-15T13:57:01.7412802Z             },
2026-06-15T13:57:01.7412983Z             {
2026-06-15T13:57:01.7413187Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7413366Z               "line": 4447
2026-06-15T13:57:01.7413528Z             }
2026-06-15T13:57:01.7413700Z           ]
2026-06-15T13:57:01.7413872Z         },
2026-06-15T13:57:01.7414047Z         "int": {
2026-06-15T13:57:01.7414225Z           "complete": false,
2026-06-15T13:57:01.7414400Z           "evidence": []
2026-06-15T13:57:01.7414577Z         },
2026-06-15T13:57:01.7414753Z         "unit": {
2026-06-15T13:57:01.7414940Z           "complete": true,
2026-06-15T13:57:01.7415117Z           "evidence": [
2026-06-15T13:57:01.7415288Z             {
2026-06-15T13:57:01.7415499Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7415674Z               "line": 8534
2026-06-15T13:57:01.7415851Z             },
2026-06-15T13:57:01.7416020Z             {
2026-06-15T13:57:01.7416228Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7416520Z               "line": 8608
2026-06-15T13:57:01.7416696Z             }
2026-06-15T13:57:01.7416868Z           ]
2026-06-15T13:57:01.7417035Z         }
2026-06-15T13:57:01.7417210Z       }
2026-06-15T13:57:01.7417378Z     },
2026-06-15T13:57:01.7417539Z     {
2026-06-15T13:57:01.7417717Z       "id": "REQ-SUBNET-5",
2026-06-15T13:57:01.7419834Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-15T13:57:01.7420149Z       "requiredStages": [
2026-06-15T13:57:01.7420326Z         "impl",
2026-06-15T13:57:01.7420512Z         "unit",
2026-06-15T13:57:01.7420683Z         "int"
2026-06-15T13:57:01.7420846Z       ],
2026-06-15T13:57:01.7421017Z       "stages": {
2026-06-15T13:57:01.7421190Z         "doc": {
2026-06-15T13:57:01.7421374Z           "complete": false,
2026-06-15T13:57:01.7421546Z           "evidence": []
2026-06-15T13:57:01.7421722Z         },
2026-06-15T13:57:01.7421899Z         "impl": {
2026-06-15T13:57:01.7422088Z           "complete": true,
2026-06-15T13:57:01.7422261Z           "evidence": [
2026-06-15T13:57:01.7422433Z             {
2026-06-15T13:57:01.7422675Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:57:01.7422852Z               "line": 126
2026-06-15T13:57:01.7423023Z             },
2026-06-15T13:57:01.7423205Z             {
2026-06-15T13:57:01.7423440Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:57:01.7423618Z               "line": 413
2026-06-15T13:57:01.7423795Z             },
2026-06-15T13:57:01.7423969Z             {
2026-06-15T13:57:01.7424194Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.7424379Z               "line": 74
2026-06-15T13:57:01.7424551Z             },
2026-06-15T13:57:01.7424723Z             {
2026-06-15T13:57:01.7424951Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.7425128Z               "line": 332
2026-06-15T13:57:01.7425295Z             },
2026-06-15T13:57:01.7425467Z             {
2026-06-15T13:57:01.7425701Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.7425876Z               "line": 621
2026-06-15T13:57:01.7426039Z             },
2026-06-15T13:57:01.7426215Z             {
2026-06-15T13:57:01.7426462Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T13:57:01.7426652Z               "line": 31
2026-06-15T13:57:01.7426817Z             },
2026-06-15T13:57:01.7426994Z             {
2026-06-15T13:57:01.7427236Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T13:57:01.7427414Z               "line": 50
2026-06-15T13:57:01.7427600Z             },
2026-06-15T13:57:01.7427771Z             {
2026-06-15T13:57:01.7428019Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T13:57:01.7428195Z               "line": 69
2026-06-15T13:57:01.7428371Z             },
2026-06-15T13:57:01.7428549Z             {
2026-06-15T13:57:01.7428786Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T13:57:01.7429034Z               "line": 113
2026-06-15T13:57:01.7429205Z             },
2026-06-15T13:57:01.7429389Z             {
2026-06-15T13:57:01.7429628Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T13:57:01.7429803Z               "line": 25
2026-06-15T13:57:01.7429976Z             },
2026-06-15T13:57:01.7430147Z             {
2026-06-15T13:57:01.7430390Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T13:57:01.7430562Z               "line": 34
2026-06-15T13:57:01.7430733Z             },
2026-06-15T13:57:01.7430909Z             {
2026-06-15T13:57:01.7431145Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T13:57:01.7431455Z               "line": 17
2026-06-15T13:57:01.7431625Z             },
2026-06-15T13:57:01.7431793Z             {
2026-06-15T13:57:01.7431995Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7432183Z               "line": 4372
2026-06-15T13:57:01.7432358Z             },
2026-06-15T13:57:01.7432526Z             {
2026-06-15T13:57:01.7432741Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:57:01.7432916Z               "line": 419
2026-06-15T13:57:01.7433088Z             }
2026-06-15T13:57:01.7433254Z           ]
2026-06-15T13:57:01.7433522Z         },
2026-06-15T13:57:01.7433700Z         "int": {
2026-06-15T13:57:01.7433879Z           "complete": true,
2026-06-15T13:57:01.7434061Z           "evidence": [
2026-06-15T13:57:01.7434217Z             {
2026-06-15T13:57:01.7434453Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:57:01.7434629Z               "line": 817
2026-06-15T13:57:01.7434806Z             }
2026-06-15T13:57:01.7434978Z           ]
2026-06-15T13:57:01.7435149Z         },
2026-06-15T13:57:01.7435331Z         "unit": {
2026-06-15T13:57:01.7435511Z           "complete": true,
2026-06-15T13:57:01.7435693Z           "evidence": [
2026-06-15T13:57:01.7435864Z             {
2026-06-15T13:57:01.7436098Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:57:01.7436280Z               "line": 341
2026-06-15T13:57:01.7436451Z             },
2026-06-15T13:57:01.7436623Z             {
2026-06-15T13:57:01.7436838Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:57:01.7437018Z               "line": 1115
2026-06-15T13:57:01.7437179Z             },
2026-06-15T13:57:01.7437354Z             {
2026-06-15T13:57:01.7437597Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T13:57:01.7437778Z               "line": 151
2026-06-15T13:57:01.7437955Z             },
2026-06-15T13:57:01.7438121Z             {
2026-06-15T13:57:01.7438359Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T13:57:01.7438532Z               "line": 61
2026-06-15T13:57:01.7438702Z             },
2026-06-15T13:57:01.7438866Z             {
2026-06-15T13:57:01.7439265Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T13:57:01.7439515Z               "line": 111
2026-06-15T13:57:01.7439679Z             },
2026-06-15T13:57:01.7439850Z             {
2026-06-15T13:57:01.7440078Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T13:57:01.7440263Z               "line": 138
2026-06-15T13:57:01.7440436Z             },
2026-06-15T13:57:01.7440606Z             {
2026-06-15T13:57:01.7440841Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T13:57:01.7441022Z               "line": 148
2026-06-15T13:57:01.7441198Z             },
2026-06-15T13:57:01.7441366Z             {
2026-06-15T13:57:01.7441570Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7441752Z               "line": 8435
2026-06-15T13:57:01.7441923Z             }
2026-06-15T13:57:01.7442099Z           ]
2026-06-15T13:57:01.7442262Z         }
2026-06-15T13:57:01.7442442Z       }
2026-06-15T13:57:01.7442604Z     },
2026-06-15T13:57:01.7442780Z     {
2026-06-15T13:57:01.7442981Z       "id": "REQ-SUBNET-6",
2026-06-15T13:57:01.7444260Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-15T13:57:01.7444439Z       "requiredStages": [
2026-06-15T13:57:01.7444617Z         "impl",
2026-06-15T13:57:01.7444781Z         "unit"
2026-06-15T13:57:01.7444953Z       ],
2026-06-15T13:57:01.7445127Z       "stages": {
2026-06-15T13:57:01.7445300Z         "doc": {
2026-06-15T13:57:01.7445476Z           "complete": false,
2026-06-15T13:57:01.7445657Z           "evidence": []
2026-06-15T13:57:01.7445824Z         },
2026-06-15T13:57:01.7446000Z         "impl": {
2026-06-15T13:57:01.7446296Z           "complete": true,
2026-06-15T13:57:01.7446478Z           "evidence": [
2026-06-15T13:57:01.7446648Z             {
2026-06-15T13:57:01.7446873Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.7447054Z               "line": 254
2026-06-15T13:57:01.7447225Z             },
2026-06-15T13:57:01.7447398Z             {
2026-06-15T13:57:01.7447606Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7447787Z               "line": 4030
2026-06-15T13:57:01.7447961Z             },
2026-06-15T13:57:01.7448134Z             {
2026-06-15T13:57:01.7448434Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7448619Z               "line": 4047
2026-06-15T13:57:01.7448791Z             },
2026-06-15T13:57:01.7449025Z             {
2026-06-15T13:57:01.7449220Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7449397Z               "line": 4100
2026-06-15T13:57:01.7449559Z             },
2026-06-15T13:57:01.7449736Z             {
2026-06-15T13:57:01.7449936Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7450126Z               "line": 4123
2026-06-15T13:57:01.7450287Z             }
2026-06-15T13:57:01.7450448Z           ]
2026-06-15T13:57:01.7450624Z         },
2026-06-15T13:57:01.7450795Z         "int": {
2026-06-15T13:57:01.7450982Z           "complete": false,
2026-06-15T13:57:01.7451161Z           "evidence": []
2026-06-15T13:57:01.7451334Z         },
2026-06-15T13:57:01.7451505Z         "unit": {
2026-06-15T13:57:01.7451678Z           "complete": true,
2026-06-15T13:57:01.7451858Z           "evidence": [
2026-06-15T13:57:01.7452030Z             {
2026-06-15T13:57:01.7452236Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7452417Z               "line": 8449
2026-06-15T13:57:01.7452589Z             },
2026-06-15T13:57:01.7452764Z             {
2026-06-15T13:57:01.7452965Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7453135Z               "line": 8482
2026-06-15T13:57:01.7453308Z             },
2026-06-15T13:57:01.7453488Z             {
2026-06-15T13:57:01.7453688Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7453866Z               "line": 8491
2026-06-15T13:57:01.7454036Z             }
2026-06-15T13:57:01.7454209Z           ]
2026-06-15T13:57:01.7454384Z         }
2026-06-15T13:57:01.7454547Z       }
2026-06-15T13:57:01.7454723Z     },
2026-06-15T13:57:01.7454885Z     {
2026-06-15T13:57:01.7455061Z       "id": "REQ-SUBNET-7",
2026-06-15T13:57:01.7457944Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-15T13:57:01.7458143Z       "requiredStages": [
2026-06-15T13:57:01.7458324Z         "impl",
2026-06-15T13:57:01.7458498Z         "unit"
2026-06-15T13:57:01.7458670Z       ],
2026-06-15T13:57:01.7458855Z       "stages": {
2026-06-15T13:57:01.7459160Z         "doc": {
2026-06-15T13:57:01.7459356Z           "complete": false,
2026-06-15T13:57:01.7459532Z           "evidence": []
2026-06-15T13:57:01.7459709Z         },
2026-06-15T13:57:01.7459885Z         "impl": {
2026-06-15T13:57:01.7460071Z           "complete": true,
2026-06-15T13:57:01.7460258Z           "evidence": [
2026-06-15T13:57:01.7460424Z             {
2026-06-15T13:57:01.7460677Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T13:57:01.7460852Z               "line": 17
2026-06-15T13:57:01.7461026Z             },
2026-06-15T13:57:01.7461193Z             {
2026-06-15T13:57:01.7461412Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.7461703Z               "line": 103
2026-06-15T13:57:01.7461876Z             },
2026-06-15T13:57:01.7462046Z             {
2026-06-15T13:57:01.7462271Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:57:01.7462442Z               "line": 312
2026-06-15T13:57:01.7462624Z             },
2026-06-15T13:57:01.7462792Z             {
2026-06-15T13:57:01.7463038Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T13:57:01.7463215Z               "line": 131
2026-06-15T13:57:01.7463387Z             },
2026-06-15T13:57:01.7463553Z             {
2026-06-15T13:57:01.7463906Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.7464086Z               "line": 160
2026-06-15T13:57:01.7464258Z             },
2026-06-15T13:57:01.7464431Z             {
2026-06-15T13:57:01.7464668Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.7464854Z               "line": 441
2026-06-15T13:57:01.7465022Z             },
2026-06-15T13:57:01.7465203Z             {
2026-06-15T13:57:01.7465437Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.7465613Z               "line": 618
2026-06-15T13:57:01.7465789Z             },
2026-06-15T13:57:01.7465954Z             {
2026-06-15T13:57:01.7466191Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.7466363Z               "line": 658
2026-06-15T13:57:01.7466524Z             },
2026-06-15T13:57:01.7466701Z             {
2026-06-15T13:57:01.7466935Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.7467116Z               "line": 714
2026-06-15T13:57:01.7467274Z             },
2026-06-15T13:57:01.7467449Z             {
2026-06-15T13:57:01.7467692Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:57:01.7467874Z               "line": 136
2026-06-15T13:57:01.7468050Z             },
2026-06-15T13:57:01.7468218Z             {
2026-06-15T13:57:01.7468451Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.7468632Z               "line": 139
2026-06-15T13:57:01.7468802Z             }
2026-06-15T13:57:01.7469043Z           ]
2026-06-15T13:57:01.7469206Z         },
2026-06-15T13:57:01.7469386Z         "int": {
2026-06-15T13:57:01.7469564Z           "complete": false,
2026-06-15T13:57:01.7469739Z           "evidence": []
2026-06-15T13:57:01.7469916Z         },
2026-06-15T13:57:01.7470092Z         "unit": {
2026-06-15T13:57:01.7470274Z           "complete": true,
2026-06-15T13:57:01.7470455Z           "evidence": [
2026-06-15T13:57:01.7470636Z             {
2026-06-15T13:57:01.7470870Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T13:57:01.7471061Z               "line": 136
2026-06-15T13:57:01.7471232Z             },
2026-06-15T13:57:01.7471402Z             {
2026-06-15T13:57:01.7471634Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T13:57:01.7471806Z               "line": 156
2026-06-15T13:57:01.7471991Z             },
2026-06-15T13:57:01.7472164Z             {
2026-06-15T13:57:01.7472407Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.7472583Z               "line": 935
2026-06-15T13:57:01.7472760Z             },
2026-06-15T13:57:01.7472940Z             {
2026-06-15T13:57:01.7473174Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:57:01.7473352Z               "line": 957
2026-06-15T13:57:01.7473512Z             },
2026-06-15T13:57:01.7473686Z             {
2026-06-15T13:57:01.7473928Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:57:01.7474118Z               "line": 1419
2026-06-15T13:57:01.7474293Z             },
2026-06-15T13:57:01.7474466Z             {
2026-06-15T13:57:01.7474695Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:57:01.7474875Z               "line": 1004
2026-06-15T13:57:01.7475052Z             }
2026-06-15T13:57:01.7475224Z           ]
2026-06-15T13:57:01.7475400Z         }
2026-06-15T13:57:01.7475682Z       }
2026-06-15T13:57:01.7475853Z     },
2026-06-15T13:57:01.7476029Z     {
2026-06-15T13:57:01.7476216Z       "id": "REQ-SUBNET-8",
2026-06-15T13:57:01.7478019Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-15T13:57:01.7478315Z       "requiredStages": [
2026-06-15T13:57:01.7478492Z         "impl",
2026-06-15T13:57:01.7478667Z         "unit"
2026-06-15T13:57:01.7478836Z       ],
2026-06-15T13:57:01.7479093Z       "stages": {
2026-06-15T13:57:01.7479268Z         "doc": {
2026-06-15T13:57:01.7479458Z           "complete": false,
2026-06-15T13:57:01.7479632Z           "evidence": []
2026-06-15T13:57:01.7479800Z         },
2026-06-15T13:57:01.7479980Z         "impl": {
2026-06-15T13:57:01.7480162Z           "complete": true,
2026-06-15T13:57:01.7480337Z           "evidence": [
2026-06-15T13:57:01.7480505Z             {
2026-06-15T13:57:01.7480710Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7480891Z               "line": 3397
2026-06-15T13:57:01.7481054Z             },
2026-06-15T13:57:01.7481229Z             {
2026-06-15T13:57:01.7481430Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7481606Z               "line": 3426
2026-06-15T13:57:01.7481769Z             },
2026-06-15T13:57:01.7481943Z             {
2026-06-15T13:57:01.7482151Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7482328Z               "line": 3443
2026-06-15T13:57:01.7482495Z             },
2026-06-15T13:57:01.7482653Z             {
2026-06-15T13:57:01.7482857Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7483029Z               "line": 3466
2026-06-15T13:57:01.7483204Z             },
2026-06-15T13:57:01.7483386Z             {
2026-06-15T13:57:01.7483587Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7483773Z               "line": 3880
2026-06-15T13:57:01.7483936Z             }
2026-06-15T13:57:01.7484106Z           ]
2026-06-15T13:57:01.7484265Z         },
2026-06-15T13:57:01.7484445Z         "int": {
2026-06-15T13:57:01.7484617Z           "complete": false,
2026-06-15T13:57:01.7484796Z           "evidence": []
2026-06-15T13:57:01.7484969Z         },
2026-06-15T13:57:01.7485145Z         "unit": {
2026-06-15T13:57:01.7485327Z           "complete": true,
2026-06-15T13:57:01.7485503Z           "evidence": [
2026-06-15T13:57:01.7485679Z             {
2026-06-15T13:57:01.7485889Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7486060Z               "line": 8639
2026-06-15T13:57:01.7486237Z             },
2026-06-15T13:57:01.7486403Z             {
2026-06-15T13:57:01.7486618Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7486791Z               "line": 8655
2026-06-15T13:57:01.7486970Z             }
2026-06-15T13:57:01.7487141Z           ]
2026-06-15T13:57:01.7487306Z         }
2026-06-15T13:57:01.7487483Z       }
2026-06-15T13:57:01.7487644Z     },
2026-06-15T13:57:01.7487817Z     {
2026-06-15T13:57:01.7488002Z       "id": "REQ-TERM-1",
2026-06-15T13:57:01.7488316Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-15T13:57:01.7488503Z       "requiredStages": [
2026-06-15T13:57:01.7488679Z         "impl",
2026-06-15T13:57:01.7488856Z         "unit"
2026-06-15T13:57:01.7489109Z       ],
2026-06-15T13:57:01.7489295Z       "stages": {
2026-06-15T13:57:01.7489489Z         "doc": {
2026-06-15T13:57:01.7489682Z           "complete": false,
2026-06-15T13:57:01.7489861Z           "evidence": []
2026-06-15T13:57:01.7490037Z         },
2026-06-15T13:57:01.7490216Z         "impl": {
2026-06-15T13:57:01.7490388Z           "complete": true,
2026-06-15T13:57:01.7490569Z           "evidence": [
2026-06-15T13:57:01.7490736Z             {
2026-06-15T13:57:01.7494186Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T13:57:01.7494423Z               "line": 59
2026-06-15T13:57:01.7494595Z             },
2026-06-15T13:57:01.7494753Z             {
2026-06-15T13:57:01.7494971Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T13:57:01.7495163Z               "line": 195
2026-06-15T13:57:01.7495332Z             },
2026-06-15T13:57:01.7495505Z             {
2026-06-15T13:57:01.7495738Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T13:57:01.7495919Z               "line": 100
2026-06-15T13:57:01.7496253Z             }
2026-06-15T13:57:01.7496426Z           ]
2026-06-15T13:57:01.7496591Z         },
2026-06-15T13:57:01.7496759Z         "int": {
2026-06-15T13:57:01.7496940Z           "complete": false,
2026-06-15T13:57:01.7497126Z           "evidence": []
2026-06-15T13:57:01.7497293Z         },
2026-06-15T13:57:01.7497473Z         "unit": {
2026-06-15T13:57:01.7497654Z           "complete": true,
2026-06-15T13:57:01.7497828Z           "evidence": [
2026-06-15T13:57:01.7497995Z             {
2026-06-15T13:57:01.7498233Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T13:57:01.7498410Z               "line": 24
2026-06-15T13:57:01.7498567Z             },
2026-06-15T13:57:01.7498739Z             {
2026-06-15T13:57:01.7499054Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T13:57:01.7499235Z               "line": 56
2026-06-15T13:57:01.7499401Z             }
2026-06-15T13:57:01.7499584Z           ]
2026-06-15T13:57:01.7499754Z         }
2026-06-15T13:57:01.7499932Z       }
2026-06-15T13:57:01.7500103Z     },
2026-06-15T13:57:01.7500271Z     {
2026-06-15T13:57:01.7500454Z       "id": "REQ-TERM-2",
2026-06-15T13:57:01.7500795Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-15T13:57:01.7500982Z       "requiredStages": [
2026-06-15T13:57:01.7501157Z         "impl",
2026-06-15T13:57:01.7501316Z         "unit"
2026-06-15T13:57:01.7501477Z       ],
2026-06-15T13:57:01.7501650Z       "stages": {
2026-06-15T13:57:01.7501816Z         "doc": {
2026-06-15T13:57:01.7501993Z           "complete": false,
2026-06-15T13:57:01.7502170Z           "evidence": []
2026-06-15T13:57:01.7502345Z         },
2026-06-15T13:57:01.7502513Z         "impl": {
2026-06-15T13:57:01.7502693Z           "complete": true,
2026-06-15T13:57:01.7502866Z           "evidence": [
2026-06-15T13:57:01.7503040Z             {
2026-06-15T13:57:01.7503267Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T13:57:01.7503448Z               "line": 117
2026-06-15T13:57:01.7503629Z             },
2026-06-15T13:57:01.7503788Z             {
2026-06-15T13:57:01.7504005Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T13:57:01.7504178Z               "line": 127
2026-06-15T13:57:01.7504339Z             }
2026-06-15T13:57:01.7504501Z           ]
2026-06-15T13:57:01.7504673Z         },
2026-06-15T13:57:01.7504850Z         "int": {
2026-06-15T13:57:01.7505027Z           "complete": false,
2026-06-15T13:57:01.7505207Z           "evidence": []
2026-06-15T13:57:01.7505366Z         },
2026-06-15T13:57:01.7505541Z         "unit": {
2026-06-15T13:57:01.7505724Z           "complete": true,
2026-06-15T13:57:01.7505902Z           "evidence": [
2026-06-15T13:57:01.7506075Z             {
2026-06-15T13:57:01.7506303Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-15T13:57:01.7506479Z               "line": 46
2026-06-15T13:57:01.7506652Z             },
2026-06-15T13:57:01.7506827Z             {
2026-06-15T13:57:01.7507047Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-15T13:57:01.7507223Z               "line": 77
2026-06-15T13:57:01.7507395Z             }
2026-06-15T13:57:01.7507553Z           ]
2026-06-15T13:57:01.7507728Z         }
2026-06-15T13:57:01.7507901Z       }
2026-06-15T13:57:01.7508077Z     },
2026-06-15T13:57:01.7508233Z     {
2026-06-15T13:57:01.7508412Z       "id": "REQ-TERM-3",
2026-06-15T13:57:01.7508685Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-15T13:57:01.7509060Z       "requiredStages": [
2026-06-15T13:57:01.7509238Z         "impl",
2026-06-15T13:57:01.7509408Z         "unit"
2026-06-15T13:57:01.7509581Z       ],
2026-06-15T13:57:01.7509756Z       "stages": {
2026-06-15T13:57:01.7509933Z         "doc": {
2026-06-15T13:57:01.7510110Z           "complete": false,
2026-06-15T13:57:01.7510286Z           "evidence": []
2026-06-15T13:57:01.7510464Z         },
2026-06-15T13:57:01.7510634Z         "impl": {
2026-06-15T13:57:01.7510826Z           "complete": true,
2026-06-15T13:57:01.7511124Z           "evidence": [
2026-06-15T13:57:01.7511298Z             {
2026-06-15T13:57:01.7511527Z               "path": "crates/spt-term/src/stream.rs",
2026-06-15T13:57:01.7511703Z               "line": 71
2026-06-15T13:57:01.7511881Z             }
2026-06-15T13:57:01.7512042Z           ]
2026-06-15T13:57:01.7512215Z         },
2026-06-15T13:57:01.7512391Z         "int": {
2026-06-15T13:57:01.7512572Z           "complete": false,
2026-06-15T13:57:01.7512758Z           "evidence": []
2026-06-15T13:57:01.7512929Z         },
2026-06-15T13:57:01.7513102Z         "unit": {
2026-06-15T13:57:01.7513272Z           "complete": true,
2026-06-15T13:57:01.7513454Z           "evidence": [
2026-06-15T13:57:01.7513623Z             {
2026-06-15T13:57:01.7513860Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-15T13:57:01.7514037Z               "line": 37
2026-06-15T13:57:01.7514208Z             },
2026-06-15T13:57:01.7514376Z             {
2026-06-15T13:57:01.7514594Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-15T13:57:01.7514772Z               "line": 67
2026-06-15T13:57:01.7514934Z             }
2026-06-15T13:57:01.7515110Z           ]
2026-06-15T13:57:01.7515282Z         }
2026-06-15T13:57:01.7515444Z       }
2026-06-15T13:57:01.7515616Z     },
2026-06-15T13:57:01.7515782Z     {
2026-06-15T13:57:01.7515974Z       "id": "REQ-TERM-4",
2026-06-15T13:57:01.7516878Z       "title": "Live activity buffer (session digest): projection of normalized session logs, snapshot-pull (spt endpoint digest) + structured-delta-stream contract + api digest-entry push",
2026-06-15T13:57:01.7517149Z       "requiredStages": [
2026-06-15T13:57:01.7517336Z         "impl",
2026-06-15T13:57:01.7517522Z         "unit",
2026-06-15T13:57:01.7517693Z         "int"
2026-06-15T13:57:01.7517856Z       ],
2026-06-15T13:57:01.7518036Z       "stages": {
2026-06-15T13:57:01.7518209Z         "doc": {
2026-06-15T13:57:01.7518399Z           "complete": false,
2026-06-15T13:57:01.7518593Z           "evidence": []
2026-06-15T13:57:01.7518783Z         },
2026-06-15T13:57:01.7519053Z         "impl": {
2026-06-15T13:57:01.7519231Z           "complete": true,
2026-06-15T13:57:01.7519440Z           "evidence": [
2026-06-15T13:57:01.7519611Z             {
2026-06-15T13:57:01.7519840Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:57:01.7520026Z               "line": 37
2026-06-15T13:57:01.7520207Z             },
2026-06-15T13:57:01.7520427Z             {
2026-06-15T13:57:01.7520670Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:57:01.7520841Z               "line": 25
2026-06-15T13:57:01.7521009Z             },
2026-06-15T13:57:01.7521180Z             {
2026-06-15T13:57:01.7521419Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:57:01.7521598Z               "line": 114
2026-06-15T13:57:01.7521778Z             },
2026-06-15T13:57:01.7521944Z             {
2026-06-15T13:57:01.7522173Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:57:01.7522355Z               "line": 267
2026-06-15T13:57:01.7522526Z             },
2026-06-15T13:57:01.7522703Z             {
2026-06-15T13:57:01.7522926Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:57:01.7523113Z               "line": 289
2026-06-15T13:57:01.7523281Z             },
2026-06-15T13:57:01.7523461Z             {
2026-06-15T13:57:01.7523695Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:57:01.7523981Z               "line": 307
2026-06-15T13:57:01.7524155Z             },
2026-06-15T13:57:01.7524327Z             {
2026-06-15T13:57:01.7524559Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T13:57:01.7524726Z               "line": 33
2026-06-15T13:57:01.7524898Z             },
2026-06-15T13:57:01.7525073Z             {
2026-06-15T13:57:01.7525307Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7525484Z               "line": 52
2026-06-15T13:57:01.7525645Z             },
2026-06-15T13:57:01.7525928Z             {
2026-06-15T13:57:01.7526162Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7526351Z               "line": 180
2026-06-15T13:57:01.7526525Z             },
2026-06-15T13:57:01.7526695Z             {
2026-06-15T13:57:01.7526924Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7527099Z               "line": 190
2026-06-15T13:57:01.7527271Z             },
2026-06-15T13:57:01.7527447Z             {
2026-06-15T13:57:01.7527676Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7527857Z               "line": 250
2026-06-15T13:57:01.7528024Z             },
2026-06-15T13:57:01.7528196Z             {
2026-06-15T13:57:01.7528416Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.7528596Z               "line": 280
2026-06-15T13:57:01.7528765Z             },
2026-06-15T13:57:01.7528935Z             {
2026-06-15T13:57:01.7529244Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.7529420Z               "line": 291
2026-06-15T13:57:01.7529584Z             },
2026-06-15T13:57:01.7529748Z             {
2026-06-15T13:57:01.7529952Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7530124Z               "line": 1092
2026-06-15T13:57:01.7530286Z             }
2026-06-15T13:57:01.7530458Z           ]
2026-06-15T13:57:01.7530630Z         },
2026-06-15T13:57:01.7530805Z         "int": {
2026-06-15T13:57:01.7530973Z           "complete": true,
2026-06-15T13:57:01.7531163Z           "evidence": [
2026-06-15T13:57:01.7531326Z             {
2026-06-15T13:57:01.7531565Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-15T13:57:01.7531744Z               "line": 18
2026-06-15T13:57:01.7531918Z             }
2026-06-15T13:57:01.7532092Z           ]
2026-06-15T13:57:01.7532249Z         },
2026-06-15T13:57:01.7532433Z         "unit": {
2026-06-15T13:57:01.7532610Z           "complete": true,
2026-06-15T13:57:01.7532794Z           "evidence": [
2026-06-15T13:57:01.7532996Z             {
2026-06-15T13:57:01.7533239Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:57:01.7533433Z               "line": 349
2026-06-15T13:57:01.7533611Z             },
2026-06-15T13:57:01.7533773Z             {
2026-06-15T13:57:01.7534001Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:57:01.7534193Z               "line": 401
2026-06-15T13:57:01.7534364Z             },
2026-06-15T13:57:01.7534527Z             {
2026-06-15T13:57:01.7534758Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:57:01.7534933Z               "line": 411
2026-06-15T13:57:01.7535143Z             },
2026-06-15T13:57:01.7535319Z             {
2026-06-15T13:57:01.7535558Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:57:01.7535739Z               "line": 436
2026-06-15T13:57:01.7535906Z             },
2026-06-15T13:57:01.7536083Z             {
2026-06-15T13:57:01.7536320Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:57:01.7536511Z               "line": 456
2026-06-15T13:57:01.7536688Z             },
2026-06-15T13:57:01.7536854Z             {
2026-06-15T13:57:01.7537099Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:57:01.7537279Z               "line": 478
2026-06-15T13:57:01.7537451Z             },
2026-06-15T13:57:01.7537621Z             {
2026-06-15T13:57:01.7537850Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:57:01.7538142Z               "line": 491
2026-06-15T13:57:01.7538308Z             },
2026-06-15T13:57:01.7538489Z             {
2026-06-15T13:57:01.7538714Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:57:01.7538894Z               "line": 502
2026-06-15T13:57:01.7539147Z             },
2026-06-15T13:57:01.7539329Z             {
2026-06-15T13:57:01.7539552Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T13:57:01.7539733Z               "line": 108
2026-06-15T13:57:01.7539909Z             },
2026-06-15T13:57:01.7540212Z             {
2026-06-15T13:57:01.7540440Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T13:57:01.7540622Z               "line": 119
2026-06-15T13:57:01.7540803Z             },
2026-06-15T13:57:01.7540980Z             {
2026-06-15T13:57:01.7541195Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T13:57:01.7541380Z               "line": 127
2026-06-15T13:57:01.7541553Z             },
2026-06-15T13:57:01.7541728Z             {
2026-06-15T13:57:01.7541961Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7542149Z               "line": 474
2026-06-15T13:57:01.7542324Z             },
2026-06-15T13:57:01.7542492Z             {
2026-06-15T13:57:01.7542723Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7542899Z               "line": 501
2026-06-15T13:57:01.7543079Z             },
2026-06-15T13:57:01.7543241Z             {
2026-06-15T13:57:01.7543466Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7543646Z               "line": 520
2026-06-15T13:57:01.7543814Z             },
2026-06-15T13:57:01.7543989Z             {
2026-06-15T13:57:01.7544223Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7544406Z               "line": 535
2026-06-15T13:57:01.7544581Z             },
2026-06-15T13:57:01.7544744Z             {
2026-06-15T13:57:01.7544972Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7545158Z               "line": 561
2026-06-15T13:57:01.7545333Z             },
2026-06-15T13:57:01.7545507Z             {
2026-06-15T13:57:01.7545742Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7545926Z               "line": 581
2026-06-15T13:57:01.7546104Z             },
2026-06-15T13:57:01.7546280Z             {
2026-06-15T13:57:01.7546513Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7546695Z               "line": 591
2026-06-15T13:57:01.7546861Z             },
2026-06-15T13:57:01.7547038Z             {
2026-06-15T13:57:01.7547273Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7547453Z               "line": 683
2026-06-15T13:57:01.7547635Z             },
2026-06-15T13:57:01.7547806Z             {
2026-06-15T13:57:01.7548034Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.7548214Z               "line": 761
2026-06-15T13:57:01.7548401Z             },
2026-06-15T13:57:01.7548582Z             {
2026-06-15T13:57:01.7548786Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7549040Z               "line": 8206
2026-06-15T13:57:01.7549202Z             }
2026-06-15T13:57:01.7549383Z           ]
2026-06-15T13:57:01.7549556Z         }
2026-06-15T13:57:01.7549735Z       }
2026-06-15T13:57:01.7549899Z     },
2026-06-15T13:57:01.7550064Z     {
2026-06-15T13:57:01.7550247Z       "id": "REQ-TERM-5",
2026-06-15T13:57:01.7553067Z       "title": "Adapter-declared digest extractor seam: a `[digest]` manifest section declaring an imperative extractor (native harness log -> the {role,text,tool,ts} contract; defaults to the [history] source files with an own-source escape hatch), `api digest-entry` push fallback, register-time validation of the section, adapter-declared presentation defaults (window depth, arg-truncation, sprint-collapse) that any consumer may override, and a `spt adapter digest-proof` author tool plus runtime skip-diagnostics (no silent drop). Reverses M9's no-manifest-seam stance; no declarative DSL.",
2026-06-15T13:57:01.7553369Z       "requiredStages": [
2026-06-15T13:57:01.7553553Z         "doc",
2026-06-15T13:57:01.7553730Z         "impl",
2026-06-15T13:57:01.7553906Z         "unit",
2026-06-15T13:57:01.7554069Z         "int"
2026-06-15T13:57:01.7554244Z       ],
2026-06-15T13:57:01.7554426Z       "stages": {
2026-06-15T13:57:01.7554598Z         "doc": {
2026-06-15T13:57:01.7554788Z           "complete": true,
2026-06-15T13:57:01.7554971Z           "evidence": [
2026-06-15T13:57:01.7555247Z             {
2026-06-15T13:57:01.7555451Z               "path": "docs/MANIFEST.md",
2026-06-15T13:57:01.7555629Z               "line": 167
2026-06-15T13:57:01.7555812Z             }
2026-06-15T13:57:01.7555983Z           ]
2026-06-15T13:57:01.7556162Z         },
2026-06-15T13:57:01.7556331Z         "impl": {
2026-06-15T13:57:01.7556521Z           "complete": true,
2026-06-15T13:57:01.7556702Z           "evidence": [
2026-06-15T13:57:01.7556884Z             {
2026-06-15T13:57:01.7557125Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:57:01.7557302Z               "line": 75
2026-06-15T13:57:01.7557474Z             },
2026-06-15T13:57:01.7557636Z             {
2026-06-15T13:57:01.7557871Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:57:01.7558051Z               "line": 131
2026-06-15T13:57:01.7558228Z             },
2026-06-15T13:57:01.7558409Z             {
2026-06-15T13:57:01.7558622Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T13:57:01.7558818Z               "line": 22
2026-06-15T13:57:01.7559056Z             },
2026-06-15T13:57:01.7559233Z             {
2026-06-15T13:57:01.7559448Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T13:57:01.7559633Z               "line": 81
2026-06-15T13:57:01.7559805Z             },
2026-06-15T13:57:01.7559971Z             {
2026-06-15T13:57:01.7560191Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T13:57:01.7560368Z               "line": 30
2026-06-15T13:57:01.7560543Z             },
2026-06-15T13:57:01.7560717Z             {
2026-06-15T13:57:01.7560948Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7561129Z               "line": 103
2026-06-15T13:57:01.7561298Z             },
2026-06-15T13:57:01.7561481Z             {
2026-06-15T13:57:01.7561699Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7561884Z               "line": 167
2026-06-15T13:57:01.7562043Z             },
2026-06-15T13:57:01.7562228Z             {
2026-06-15T13:57:01.7562453Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7562635Z               "line": 434
2026-06-15T13:57:01.7562810Z             },
2026-06-15T13:57:01.7562978Z             {
2026-06-15T13:57:01.7563182Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7563359Z               "line": 5076
2026-06-15T13:57:01.7563535Z             },
2026-06-15T13:57:01.7563716Z             {
2026-06-15T13:57:01.7563915Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7564089Z               "line": 5112
2026-06-15T13:57:01.7564256Z             }
2026-06-15T13:57:01.7564418Z           ]
2026-06-15T13:57:01.7564591Z         },
2026-06-15T13:57:01.7564780Z         "int": {
2026-06-15T13:57:01.7564957Z           "complete": true,
2026-06-15T13:57:01.7565138Z           "evidence": [
2026-06-15T13:57:01.7565310Z             {
2026-06-15T13:57:01.7565597Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T13:57:01.7565777Z               "line": 17
2026-06-15T13:57:01.7565953Z             }
2026-06-15T13:57:01.7566132Z           ]
2026-06-15T13:57:01.7566316Z         },
2026-06-15T13:57:01.7566487Z         "unit": {
2026-06-15T13:57:01.7566675Z           "complete": true,
2026-06-15T13:57:01.7566857Z           "evidence": [
2026-06-15T13:57:01.7567028Z             {
2026-06-15T13:57:01.7567253Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:57:01.7567543Z               "line": 360
2026-06-15T13:57:01.7567725Z             },
2026-06-15T13:57:01.7567896Z             {
2026-06-15T13:57:01.7568112Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T13:57:01.7568282Z               "line": 153
2026-06-15T13:57:01.7568464Z             },
2026-06-15T13:57:01.7568640Z             {
2026-06-15T13:57:01.7568859Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T13:57:01.7569126Z               "line": 169
2026-06-15T13:57:01.7569306Z             },
2026-06-15T13:57:01.7569582Z             {
2026-06-15T13:57:01.7569808Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T13:57:01.7569989Z               "line": 191
2026-06-15T13:57:01.7570169Z             },
2026-06-15T13:57:01.7570342Z             {
2026-06-15T13:57:01.7570555Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T13:57:01.7570732Z               "line": 202
2026-06-15T13:57:01.7570909Z             },
2026-06-15T13:57:01.7571085Z             {
2026-06-15T13:57:01.7571310Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T13:57:01.7571494Z               "line": 213
2026-06-15T13:57:01.7571665Z             },
2026-06-15T13:57:01.7571844Z             {
2026-06-15T13:57:01.7572078Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.7572255Z               "line": 1147
2026-06-15T13:57:01.7572426Z             },
2026-06-15T13:57:01.7572599Z             {
2026-06-15T13:57:01.7572846Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.7573032Z               "line": 1190
2026-06-15T13:57:01.7573209Z             },
2026-06-15T13:57:01.7573370Z             {
2026-06-15T13:57:01.7573609Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7573786Z               "line": 606
2026-06-15T13:57:01.7573961Z             },
2026-06-15T13:57:01.7574144Z             {
2026-06-15T13:57:01.7574371Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7574561Z               "line": 634
2026-06-15T13:57:01.7574726Z             },
2026-06-15T13:57:01.7574908Z             {
2026-06-15T13:57:01.7575132Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7575316Z               "line": 646
2026-06-15T13:57:01.7575490Z             },
2026-06-15T13:57:01.7575655Z             {
2026-06-15T13:57:01.7575889Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7576071Z               "line": 669
2026-06-15T13:57:01.7576247Z             },
2026-06-15T13:57:01.7576420Z             {
2026-06-15T13:57:01.7576619Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7576801Z               "line": 6981
2026-06-15T13:57:01.7576979Z             },
2026-06-15T13:57:01.7577160Z             {
2026-06-15T13:57:01.7577359Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7577545Z               "line": 7039
2026-06-15T13:57:01.7577727Z             }
2026-06-15T13:57:01.7577893Z           ]
2026-06-15T13:57:01.7578065Z         }
2026-06-15T13:57:01.7578227Z       }
2026-06-15T13:57:01.7578404Z     },
2026-06-15T13:57:01.7578566Z     {
2026-06-15T13:57:01.7578751Z       "id": "REQ-TERM-6",
2026-06-15T13:57:01.7580725Z       "title": "Thread-spanning digest across session boundaries: a per-endpoint session ledger (`<perch>/sessions.log`) appended at first bind and by `api boundary` on `/clear`|`/compact` session rotation, the digest enumerating the last K sessions so its rolling window bridges a boundary, and a distinctive in-timeline boundary marker (DigestEntry::Boundary). The digest follows the live-agent thread, not a single session.",
2026-06-15T13:57:01.7580916Z       "requiredStages": [
2026-06-15T13:57:01.7581096Z         "impl",
2026-06-15T13:57:01.7581274Z         "unit",
2026-06-15T13:57:01.7581440Z         "int"
2026-06-15T13:57:01.7581617Z       ],
2026-06-15T13:57:01.7581793Z       "stages": {
2026-06-15T13:57:01.7582078Z         "doc": {
2026-06-15T13:57:01.7582267Z           "complete": false,
2026-06-15T13:57:01.7582452Z           "evidence": []
2026-06-15T13:57:01.7582629Z         },
2026-06-15T13:57:01.7582810Z         "impl": {
2026-06-15T13:57:01.7583001Z           "complete": true,
2026-06-15T13:57:01.7583178Z           "evidence": [
2026-06-15T13:57:01.7583353Z             {
2026-06-15T13:57:01.7583592Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:57:01.7583774Z               "line": 132
2026-06-15T13:57:01.7583935Z             },
2026-06-15T13:57:01.7584117Z             {
2026-06-15T13:57:01.7584446Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:57:01.7584626Z               "line": 176
2026-06-15T13:57:01.7584808Z             },
2026-06-15T13:57:01.7584978Z             {
2026-06-15T13:57:01.7585210Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T13:57:01.7585391Z               "line": 17
2026-06-15T13:57:01.7585557Z             },
2026-06-15T13:57:01.7585730Z             {
2026-06-15T13:57:01.7585958Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T13:57:01.7586140Z               "line": 96
2026-06-15T13:57:01.7586317Z             },
2026-06-15T13:57:01.7586497Z             {
2026-06-15T13:57:01.7586722Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7586903Z               "line": 319
2026-06-15T13:57:01.7587083Z             },
2026-06-15T13:57:01.7587247Z             {
2026-06-15T13:57:01.7587478Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7587655Z               "line": 396
2026-06-15T13:57:01.7587833Z             }
2026-06-15T13:57:01.7588006Z           ]
2026-06-15T13:57:01.7588181Z         },
2026-06-15T13:57:01.7588354Z         "int": {
2026-06-15T13:57:01.7588540Z           "complete": true,
2026-06-15T13:57:01.7588712Z           "evidence": [
2026-06-15T13:57:01.7588874Z             {
2026-06-15T13:57:01.7589237Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T13:57:01.7589431Z               "line": 18
2026-06-15T13:57:01.7589603Z             }
2026-06-15T13:57:01.7589775Z           ]
2026-06-15T13:57:01.7589941Z         },
2026-06-15T13:57:01.7590114Z         "unit": {
2026-06-15T13:57:01.7590293Z           "complete": true,
2026-06-15T13:57:01.7590479Z           "evidence": [
2026-06-15T13:57:01.7590655Z             {
2026-06-15T13:57:01.7590880Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T13:57:01.7591070Z               "line": 126
2026-06-15T13:57:01.7591243Z             },
2026-06-15T13:57:01.7591419Z             {
2026-06-15T13:57:01.7591637Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T13:57:01.7591819Z               "line": 141
2026-06-15T13:57:01.7592000Z             },
2026-06-15T13:57:01.7592172Z             {
2026-06-15T13:57:01.7592397Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T13:57:01.7592572Z               "line": 157
2026-06-15T13:57:01.7592757Z             },
2026-06-15T13:57:01.7592926Z             {
2026-06-15T13:57:01.7593147Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T13:57:01.7593336Z               "line": 175
2026-06-15T13:57:01.7593508Z             },
2026-06-15T13:57:01.7593681Z             {
2026-06-15T13:57:01.7593904Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7594086Z               "line": 738
2026-06-15T13:57:01.7594252Z             },
2026-06-15T13:57:01.7594429Z             {
2026-06-15T13:57:01.7594663Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7594843Z               "line": 759
2026-06-15T13:57:01.7595011Z             },
2026-06-15T13:57:01.7595168Z             {
2026-06-15T13:57:01.7595396Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:57:01.7595572Z               "line": 602
2026-06-15T13:57:01.7595751Z             }
2026-06-15T13:57:01.7595923Z           ]
2026-06-15T13:57:01.7596085Z         }
2026-06-15T13:57:01.7596381Z       }
2026-06-15T13:57:01.7596553Z     },
2026-06-15T13:57:01.7596728Z     {
2026-06-15T13:57:01.7596901Z       "id": "REQ-TERM-7",
2026-06-15T13:57:01.7598895Z       "title": "Two-origin digest merge: spt-owned context-injection entries (psyche_download | echo_mirror | owl_message) appended by spt to the endpoint `digest.log`, timestamp-interleaved with the adapter's extracted activity records into one ordered timeline, via a distinct context-injection record category. Data model only this milestone; GUI collapse/expand and the echo-reads-digest delta loop are deferred to the surfaces that consume them.",
2026-06-15T13:57:01.7599304Z       "requiredStages": [
2026-06-15T13:57:01.7599482Z         "impl",
2026-06-15T13:57:01.7599657Z         "unit",
2026-06-15T13:57:01.7599820Z         "int"
2026-06-15T13:57:01.7599996Z       ],
2026-06-15T13:57:01.7600168Z       "stages": {
2026-06-15T13:57:01.7600330Z         "doc": {
2026-06-15T13:57:01.7600525Z           "complete": false,
2026-06-15T13:57:01.7600703Z           "evidence": []
2026-06-15T13:57:01.7600872Z         },
2026-06-15T13:57:01.7601044Z         "impl": {
2026-06-15T13:57:01.7601225Z           "complete": true,
2026-06-15T13:57:01.7601403Z           "evidence": [
2026-06-15T13:57:01.7601573Z             {
2026-06-15T13:57:01.7601808Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:57:01.7601984Z               "line": 133
2026-06-15T13:57:01.7602155Z             },
2026-06-15T13:57:01.7602323Z             {
2026-06-15T13:57:01.7602555Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:57:01.7602741Z               "line": 311
2026-06-15T13:57:01.7602913Z             },
2026-06-15T13:57:01.7603094Z             {
2026-06-15T13:57:01.7603318Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T13:57:01.7603496Z               "line": 15
2026-06-15T13:57:01.7603664Z             },
2026-06-15T13:57:01.7603839Z             {
2026-06-15T13:57:01.7604064Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T13:57:01.7604241Z               "line": 32
2026-06-15T13:57:01.7604421Z             },
2026-06-15T13:57:01.7604594Z             {
2026-06-15T13:57:01.7604831Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T13:57:01.7605008Z               "line": 49
2026-06-15T13:57:01.7605171Z             },
2026-06-15T13:57:01.7605346Z             {
2026-06-15T13:57:01.7605576Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7605752Z               "line": 286
2026-06-15T13:57:01.7605924Z             },
2026-06-15T13:57:01.7606108Z             {
2026-06-15T13:57:01.7606345Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7606521Z               "line": 320
2026-06-15T13:57:01.7606701Z             }
2026-06-15T13:57:01.7606870Z           ]
2026-06-15T13:57:01.7607040Z         },
2026-06-15T13:57:01.7607208Z         "int": {
2026-06-15T13:57:01.7607437Z           "complete": true,
2026-06-15T13:57:01.7607651Z           "evidence": [
2026-06-15T13:57:01.7607833Z             {
2026-06-15T13:57:01.7608128Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T13:57:01.7608309Z               "line": 19
2026-06-15T13:57:01.7608486Z             }
2026-06-15T13:57:01.7608651Z           ]
2026-06-15T13:57:01.7608854Z         },
2026-06-15T13:57:01.7609202Z         "unit": {
2026-06-15T13:57:01.7609389Z           "complete": true,
2026-06-15T13:57:01.7609573Z           "evidence": [
2026-06-15T13:57:01.7609746Z             {
2026-06-15T13:57:01.7609980Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:57:01.7610166Z               "line": 440
2026-06-15T13:57:01.7610352Z             },
2026-06-15T13:57:01.7610532Z             {
2026-06-15T13:57:01.7610761Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:57:01.7610972Z               "line": 551
2026-06-15T13:57:01.7611157Z             },
2026-06-15T13:57:01.7611330Z             {
2026-06-15T13:57:01.7611696Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T13:57:01.7611948Z               "line": 58
2026-06-15T13:57:01.7612142Z             },
2026-06-15T13:57:01.7612320Z             {
2026-06-15T13:57:01.7612534Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T13:57:01.7612720Z               "line": 77
2026-06-15T13:57:01.7612897Z             },
2026-06-15T13:57:01.7613077Z             {
2026-06-15T13:57:01.7613292Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T13:57:01.7613478Z               "line": 87
2026-06-15T13:57:01.7613758Z             },
2026-06-15T13:57:01.7613929Z             {
2026-06-15T13:57:01.7614166Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T13:57:01.7614347Z               "line": 94
2026-06-15T13:57:01.7614520Z             },
2026-06-15T13:57:01.7614695Z             {
2026-06-15T13:57:01.7614925Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7615106Z               "line": 691
2026-06-15T13:57:01.7615282Z             },
2026-06-15T13:57:01.7615459Z             {
2026-06-15T13:57:01.7615706Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:57:01.7615963Z               "line": 716
2026-06-15T13:57:01.7616136Z             }
2026-06-15T13:57:01.7616312Z           ]
2026-06-15T13:57:01.7616479Z         }
2026-06-15T13:57:01.7616653Z       }
2026-06-15T13:57:01.7616820Z     },
2026-06-15T13:57:01.7616980Z     {
2026-06-15T13:57:01.7617176Z       "id": "REQ-UPD-1",
2026-06-15T13:57:01.7617401Z       "title": "Peer-propagated update over P2P",
2026-06-15T13:57:01.7617595Z       "requiredStages": [
2026-06-15T13:57:01.7617768Z         "impl",
2026-06-15T13:57:01.7617944Z         "unit",
2026-06-15T13:57:01.7618116Z         "int"
2026-06-15T13:57:01.7618278Z       ],
2026-06-15T13:57:01.7618459Z       "stages": {
2026-06-15T13:57:01.7618632Z         "doc": {
2026-06-15T13:57:01.7618816Z           "complete": false,
2026-06-15T13:57:01.7619069Z           "evidence": []
2026-06-15T13:57:01.7619240Z         },
2026-06-15T13:57:01.7619424Z         "impl": {
2026-06-15T13:57:01.7619605Z           "complete": true,
2026-06-15T13:57:01.7619795Z           "evidence": [
2026-06-15T13:57:01.7619973Z             {
2026-06-15T13:57:01.7620210Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.7620387Z               "line": 28
2026-06-15T13:57:01.7620560Z             },
2026-06-15T13:57:01.7620740Z             {
2026-06-15T13:57:01.7620959Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.7621150Z               "line": 103
2026-06-15T13:57:01.7621331Z             },
2026-06-15T13:57:01.7621504Z             {
2026-06-15T13:57:01.7621736Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.7621923Z               "line": 342
2026-06-15T13:57:01.7622102Z             },
2026-06-15T13:57:01.7622270Z             {
2026-06-15T13:57:01.7622503Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7622693Z               "line": 22
2026-06-15T13:57:01.7622866Z             },
2026-06-15T13:57:01.7623046Z             {
2026-06-15T13:57:01.7623271Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7623457Z               "line": 207
2026-06-15T13:57:01.7623628Z             },
2026-06-15T13:57:01.7623810Z             {
2026-06-15T13:57:01.7624029Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7630112Z               "line": 283
2026-06-15T13:57:01.7630346Z             },
2026-06-15T13:57:01.7630518Z             {
2026-06-15T13:57:01.7630876Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7631066Z               "line": 340
2026-06-15T13:57:01.7631243Z             },
2026-06-15T13:57:01.7631405Z             {
2026-06-15T13:57:01.7631638Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T13:57:01.7631806Z               "line": 37
2026-06-15T13:57:01.7631962Z             }
2026-06-15T13:57:01.7632287Z           ]
2026-06-15T13:57:01.7632450Z         },
2026-06-15T13:57:01.7632614Z         "int": {
2026-06-15T13:57:01.7632797Z           "complete": true,
2026-06-15T13:57:01.7632967Z           "evidence": [
2026-06-15T13:57:01.7633149Z             {
2026-06-15T13:57:01.7633402Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:57:01.7633573Z               "line": 207
2026-06-15T13:57:01.7633740Z             },
2026-06-15T13:57:01.7633897Z             {
2026-06-15T13:57:01.7634117Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:57:01.7634413Z               "line": 988
2026-06-15T13:57:01.7634584Z             }
2026-06-15T13:57:01.7634746Z           ]
2026-06-15T13:57:01.7634916Z         },
2026-06-15T13:57:01.7635096Z         "unit": {
2026-06-15T13:57:01.7635282Z           "complete": true,
2026-06-15T13:57:01.7635458Z           "evidence": [
2026-06-15T13:57:01.7635620Z             {
2026-06-15T13:57:01.7635872Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7636050Z               "line": 490
2026-06-15T13:57:01.7636217Z             },
2026-06-15T13:57:01.7636384Z             {
2026-06-15T13:57:01.7636622Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7636793Z               "line": 616
2026-06-15T13:57:01.7636961Z             },
2026-06-15T13:57:01.7637137Z             {
2026-06-15T13:57:01.7637360Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T13:57:01.7637524Z               "line": 277
2026-06-15T13:57:01.7637693Z             },
2026-06-15T13:57:01.7637860Z             {
2026-06-15T13:57:01.7638082Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T13:57:01.7638249Z               "line": 124
2026-06-15T13:57:01.7638415Z             },
2026-06-15T13:57:01.7638573Z             {
2026-06-15T13:57:01.7638793Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T13:57:01.7639040Z               "line": 200
2026-06-15T13:57:01.7639193Z             }
2026-06-15T13:57:01.7639388Z           ]
2026-06-15T13:57:01.7639541Z         }
2026-06-15T13:57:01.7639703Z       }
2026-06-15T13:57:01.7639865Z     },
2026-06-15T13:57:01.7640028Z     {
2026-06-15T13:57:01.7640208Z       "id": "REQ-UPD-2",
2026-06-15T13:57:01.7640474Z       "title": "All binaries signature-verified before handoff",
2026-06-15T13:57:01.7640643Z       "requiredStages": [
2026-06-15T13:57:01.7640817Z         "impl",
2026-06-15T13:57:01.7640967Z         "unit"
2026-06-15T13:57:01.7641112Z       ],
2026-06-15T13:57:01.7641273Z       "stages": {
2026-06-15T13:57:01.7641436Z         "doc": {
2026-06-15T13:57:01.7641611Z           "complete": false,
2026-06-15T13:57:01.7641788Z           "evidence": []
2026-06-15T13:57:01.7641945Z         },
2026-06-15T13:57:01.7642108Z         "impl": {
2026-06-15T13:57:01.7642270Z           "complete": true,
2026-06-15T13:57:01.7642446Z           "evidence": [
2026-06-15T13:57:01.7642609Z             {
2026-06-15T13:57:01.7642852Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.7643029Z               "line": 343
2026-06-15T13:57:01.7643198Z             },
2026-06-15T13:57:01.7643371Z             {
2026-06-15T13:57:01.7643580Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.7643747Z               "line": 476
2026-06-15T13:57:01.7643905Z             },
2026-06-15T13:57:01.7644067Z             {
2026-06-15T13:57:01.7644291Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7644457Z               "line": 29
2026-06-15T13:57:01.7644620Z             },
2026-06-15T13:57:01.7644772Z             {
2026-06-15T13:57:01.7644987Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7645159Z               "line": 271
2026-06-15T13:57:01.7645315Z             },
2026-06-15T13:57:01.7645476Z             {
2026-06-15T13:57:01.7645680Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7645842Z               "line": 288
2026-06-15T13:57:01.7646113Z             },
2026-06-15T13:57:01.7646271Z             {
2026-06-15T13:57:01.7646486Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7646652Z               "line": 408
2026-06-15T13:57:01.7646820Z             },
2026-06-15T13:57:01.7646977Z             {
2026-06-15T13:57:01.7647192Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7647353Z               "line": 540
2026-06-15T13:57:01.7647502Z             },
2026-06-15T13:57:01.7647667Z             {
2026-06-15T13:57:01.7647873Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:57:01.7648141Z               "line": 155
2026-06-15T13:57:01.7648292Z             }
2026-06-15T13:57:01.7648444Z           ]
2026-06-15T13:57:01.7648594Z         },
2026-06-15T13:57:01.7648747Z         "int": {
2026-06-15T13:57:01.7648928Z           "complete": false,
2026-06-15T13:57:01.7649177Z           "evidence": []
2026-06-15T13:57:01.7649329Z         },
2026-06-15T13:57:01.7649492Z         "unit": {
2026-06-15T13:57:01.7649658Z           "complete": true,
2026-06-15T13:57:01.7649820Z           "evidence": [
2026-06-15T13:57:01.7649983Z             {
2026-06-15T13:57:01.7650196Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7650365Z               "line": 697
2026-06-15T13:57:01.7650521Z             },
2026-06-15T13:57:01.7650660Z             {
2026-06-15T13:57:01.7650868Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7651030Z               "line": 758
2026-06-15T13:57:01.7651190Z             },
2026-06-15T13:57:01.7651338Z             {
2026-06-15T13:57:01.7651547Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7651705Z               "line": 772
2026-06-15T13:57:01.7651852Z             },
2026-06-15T13:57:01.7652015Z             {
2026-06-15T13:57:01.7652216Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7652382Z               "line": 788
2026-06-15T13:57:01.7652540Z             },
2026-06-15T13:57:01.7652682Z             {
2026-06-15T13:57:01.7652898Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7653059Z               "line": 879
2026-06-15T13:57:01.7653218Z             },
2026-06-15T13:57:01.7653378Z             {
2026-06-15T13:57:01.7653584Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:57:01.7653749Z               "line": 414
2026-06-15T13:57:01.7653893Z             },
2026-06-15T13:57:01.7654078Z             {
2026-06-15T13:57:01.7654307Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:57:01.7654480Z               "line": 427
2026-06-15T13:57:01.7654646Z             },
2026-06-15T13:57:01.7654789Z             {
2026-06-15T13:57:01.7655027Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T13:57:01.7655195Z               "line": 410
2026-06-15T13:57:01.7655356Z             }
2026-06-15T13:57:01.7655514Z           ]
2026-06-15T13:57:01.7655666Z         }
2026-06-15T13:57:01.7655829Z       }
2026-06-15T13:57:01.7655980Z     },
2026-06-15T13:57:01.7656127Z     {
2026-06-15T13:57:01.7656297Z       "id": "REQ-UPD-3",
2026-06-15T13:57:01.7656620Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-15T13:57:01.7656799Z       "requiredStages": [
2026-06-15T13:57:01.7656954Z         "impl",
2026-06-15T13:57:01.7657113Z         "unit",
2026-06-15T13:57:01.7657264Z         "int"
2026-06-15T13:57:01.7657442Z       ],
2026-06-15T13:57:01.7657613Z       "stages": {
2026-06-15T13:57:01.7657770Z         "doc": {
2026-06-15T13:57:01.7657947Z           "complete": false,
2026-06-15T13:57:01.7658114Z           "evidence": []
2026-06-15T13:57:01.7658272Z         },
2026-06-15T13:57:01.7658428Z         "impl": {
2026-06-15T13:57:01.7658596Z           "complete": true,
2026-06-15T13:57:01.7658753Z           "evidence": [
2026-06-15T13:57:01.7658918Z             {
2026-06-15T13:57:01.7659235Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.7659545Z               "line": 40
2026-06-15T13:57:01.7659703Z             },
2026-06-15T13:57:01.7659850Z             {
2026-06-15T13:57:01.7660085Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.7660252Z               "line": 87
2026-06-15T13:57:01.7660409Z             },
2026-06-15T13:57:01.7660567Z             {
2026-06-15T13:57:01.7660775Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:57:01.7660939Z               "line": 993
2026-06-15T13:57:01.7661095Z             },
2026-06-15T13:57:01.7661338Z             {
2026-06-15T13:57:01.7661552Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:57:01.7661721Z               "line": 1085
2026-06-15T13:57:01.7661884Z             },
2026-06-15T13:57:01.7662031Z             {
2026-06-15T13:57:01.7662241Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:57:01.7662408Z               "line": 26
2026-06-15T13:57:01.7662570Z             },
2026-06-15T13:57:01.7662732Z             {
2026-06-15T13:57:01.7662947Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:57:01.7663110Z               "line": 114
2026-06-15T13:57:01.7663262Z             },
2026-06-15T13:57:01.7663420Z             {
2026-06-15T13:57:01.7663633Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:57:01.7663807Z               "line": 246
2026-06-15T13:57:01.7663957Z             },
2026-06-15T13:57:01.7664121Z             {
2026-06-15T13:57:01.7664318Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7664487Z               "line": 2180
2026-06-15T13:57:01.7664638Z             }
2026-06-15T13:57:01.7664792Z           ]
2026-06-15T13:57:01.7664948Z         },
2026-06-15T13:57:01.7665097Z         "int": {
2026-06-15T13:57:01.7665272Z           "complete": true,
2026-06-15T13:57:01.7665440Z           "evidence": [
2026-06-15T13:57:01.7665592Z             {
2026-06-15T13:57:01.7665821Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T13:57:01.7665989Z               "line": 58
2026-06-15T13:57:01.7666150Z             }
2026-06-15T13:57:01.7666294Z           ]
2026-06-15T13:57:01.7666445Z         },
2026-06-15T13:57:01.7666602Z         "unit": {
2026-06-15T13:57:01.7666772Z           "complete": true,
2026-06-15T13:57:01.7666943Z           "evidence": [
2026-06-15T13:57:01.7667095Z             {
2026-06-15T13:57:01.7667320Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.7667486Z               "line": 532
2026-06-15T13:57:01.7667640Z             },
2026-06-15T13:57:01.7667791Z             {
2026-06-15T13:57:01.7668002Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.7668163Z               "line": 583
2026-06-15T13:57:01.7668316Z             },
2026-06-15T13:57:01.7668473Z             {
2026-06-15T13:57:01.7668693Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.7668851Z               "line": 651
2026-06-15T13:57:01.7669098Z             },
2026-06-15T13:57:01.7669252Z             {
2026-06-15T13:57:01.7669478Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:57:01.7669644Z               "line": 1062
2026-06-15T13:57:01.7669791Z             },
2026-06-15T13:57:01.7669944Z             {
2026-06-15T13:57:01.7670154Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:57:01.7670316Z               "line": 271
2026-06-15T13:57:01.7670469Z             },
2026-06-15T13:57:01.7670631Z             {
2026-06-15T13:57:01.7670831Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:57:01.7671002Z               "line": 295
2026-06-15T13:57:01.7671160Z             },
2026-06-15T13:57:01.7671312Z             {
2026-06-15T13:57:01.7671527Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:57:01.7671689Z               "line": 316
2026-06-15T13:57:01.7671842Z             },
2026-06-15T13:57:01.7671997Z             {
2026-06-15T13:57:01.7672206Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:57:01.7672473Z               "line": 332
2026-06-15T13:57:01.7672619Z             }
2026-06-15T13:57:01.7672778Z           ]
2026-06-15T13:57:01.7672929Z         }
2026-06-15T13:57:01.7673079Z       }
2026-06-15T13:57:01.7673230Z     },
2026-06-15T13:57:01.7673384Z     {
2026-06-15T13:57:01.7673550Z       "id": "REQ-UPD-4",
2026-06-15T13:57:01.7673888Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-15T13:57:01.7674066Z       "requiredStages": [
2026-06-15T13:57:01.7674227Z         "impl",
2026-06-15T13:57:01.7674489Z         "unit"
2026-06-15T13:57:01.7674643Z       ],
2026-06-15T13:57:01.7674812Z       "stages": {
2026-06-15T13:57:01.7674975Z         "doc": {
2026-06-15T13:57:01.7675150Z           "complete": false,
2026-06-15T13:57:01.7675314Z           "evidence": []
2026-06-15T13:57:01.7675460Z         },
2026-06-15T13:57:01.7675619Z         "impl": {
2026-06-15T13:57:01.7675784Z           "complete": true,
2026-06-15T13:57:01.7675953Z           "evidence": [
2026-06-15T13:57:01.7676104Z             {
2026-06-15T13:57:01.7676333Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.7676500Z               "line": 41
2026-06-15T13:57:01.7676653Z             },
2026-06-15T13:57:01.7676801Z             {
2026-06-15T13:57:01.7677005Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.7677172Z               "line": 88
2026-06-15T13:57:01.7677327Z             },
2026-06-15T13:57:01.7677484Z             {
2026-06-15T13:57:01.7677699Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T13:57:01.7677866Z               "line": 23
2026-06-15T13:57:01.7678022Z             },
2026-06-15T13:57:01.7678172Z             {
2026-06-15T13:57:01.7678390Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T13:57:01.7678547Z               "line": 56
2026-06-15T13:57:01.7678700Z             },
2026-06-15T13:57:01.7678867Z             {
2026-06-15T13:57:01.7679168Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T13:57:01.7679324Z               "line": 77
2026-06-15T13:57:01.7679492Z             },
2026-06-15T13:57:01.7679649Z             {
2026-06-15T13:57:01.7679868Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:57:01.7680024Z               "line": 186
2026-06-15T13:57:01.7680176Z             },
2026-06-15T13:57:01.7680327Z             {
2026-06-15T13:57:01.7680533Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:57:01.7680690Z               "line": 108
2026-06-15T13:57:01.7680862Z             },
2026-06-15T13:57:01.7681019Z             {
2026-06-15T13:57:01.7681214Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.7681377Z               "line": 180
2026-06-15T13:57:01.7681524Z             },
2026-06-15T13:57:01.7681683Z             {
2026-06-15T13:57:01.7681867Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7682035Z               "line": 2179
2026-06-15T13:57:01.7682220Z             }
2026-06-15T13:57:01.7682369Z           ]
2026-06-15T13:57:01.7682529Z         },
2026-06-15T13:57:01.7682701Z         "int": {
2026-06-15T13:57:01.7682874Z           "complete": false,
2026-06-15T13:57:01.7683042Z           "evidence": []
2026-06-15T13:57:01.7683223Z         },
2026-06-15T13:57:01.7683381Z         "unit": {
2026-06-15T13:57:01.7683552Z           "complete": true,
2026-06-15T13:57:01.7683709Z           "evidence": [
2026-06-15T13:57:01.7683857Z             {
2026-06-15T13:57:01.7684101Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.7684263Z               "line": 579
2026-06-15T13:57:01.7684425Z             },
2026-06-15T13:57:01.7684569Z             {
2026-06-15T13:57:01.7684787Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.7684955Z               "line": 704
2026-06-15T13:57:01.7685101Z             },
2026-06-15T13:57:01.7685251Z             {
2026-06-15T13:57:01.7685564Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:57:01.7685730Z               "line": 384
2026-06-15T13:57:01.7685893Z             },
2026-06-15T13:57:01.7686049Z             {
2026-06-15T13:57:01.7686264Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T13:57:01.7686421Z               "line": 102
2026-06-15T13:57:01.7686570Z             },
2026-06-15T13:57:01.7686731Z             {
2026-06-15T13:57:01.7686936Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T13:57:01.7687100Z               "line": 123
2026-06-15T13:57:01.7687361Z             },
2026-06-15T13:57:01.7687510Z             {
2026-06-15T13:57:01.7687722Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T13:57:01.7687887Z               "line": 142
2026-06-15T13:57:01.7688044Z             },
2026-06-15T13:57:01.7688188Z             {
2026-06-15T13:57:01.7688402Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:57:01.7688559Z               "line": 413
2026-06-15T13:57:01.7688717Z             },
2026-06-15T13:57:01.7688865Z             {
2026-06-15T13:57:01.7689175Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:57:01.7689366Z               "line": 566
2026-06-15T13:57:01.7689518Z             },
2026-06-15T13:57:01.7689681Z             {
2026-06-15T13:57:01.7689875Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7690034Z               "line": 6754
2026-06-15T13:57:01.7690180Z             }
2026-06-15T13:57:01.7690344Z           ]
2026-06-15T13:57:01.7690494Z         }
2026-06-15T13:57:01.7690651Z       }
2026-06-15T13:57:01.7690821Z     },
2026-06-15T13:57:01.7690974Z     {
2026-06-15T13:57:01.7691145Z       "id": "REQ-UPD-5",
2026-06-15T13:57:01.7691389Z       "title": "spt-core ripple-updates registered adapters",
2026-06-15T13:57:01.7691570Z       "requiredStages": [
2026-06-15T13:57:01.7691741Z         "impl",
2026-06-15T13:57:01.7691898Z         "unit"
2026-06-15T13:57:01.7692061Z       ],
2026-06-15T13:57:01.7692218Z       "stages": {
2026-06-15T13:57:01.7692380Z         "doc": {
2026-06-15T13:57:01.7692553Z           "complete": false,
2026-06-15T13:57:01.7692713Z           "evidence": []
2026-06-15T13:57:01.7692863Z         },
2026-06-15T13:57:01.7693014Z         "impl": {
2026-06-15T13:57:01.7693180Z           "complete": true,
2026-06-15T13:57:01.7693340Z           "evidence": [
2026-06-15T13:57:01.7693497Z             {
2026-06-15T13:57:01.7693726Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:57:01.7693884Z               "line": 27
2026-06-15T13:57:01.7694045Z             },
2026-06-15T13:57:01.7694189Z             {
2026-06-15T13:57:01.7694422Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:57:01.7694584Z               "line": 82
2026-06-15T13:57:01.7694742Z             },
2026-06-15T13:57:01.7694895Z             {
2026-06-15T13:57:01.7695124Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:57:01.7695290Z               "line": 134
2026-06-15T13:57:01.7695453Z             },
2026-06-15T13:57:01.7695599Z             {
2026-06-15T13:57:01.7695816Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7695994Z               "line": 492
2026-06-15T13:57:01.7696148Z             },
2026-06-15T13:57:01.7696309Z             {
2026-06-15T13:57:01.7696525Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7696691Z               "line": 528
2026-06-15T13:57:01.7696849Z             }
2026-06-15T13:57:01.7696996Z           ]
2026-06-15T13:57:01.7697162Z         },
2026-06-15T13:57:01.7697311Z         "int": {
2026-06-15T13:57:01.7697487Z           "complete": false,
2026-06-15T13:57:01.7697655Z           "evidence": []
2026-06-15T13:57:01.7697802Z         },
2026-06-15T13:57:01.7697969Z         "unit": {
2026-06-15T13:57:01.7698131Z           "complete": true,
2026-06-15T13:57:01.7698297Z           "evidence": [
2026-06-15T13:57:01.7698448Z             {
2026-06-15T13:57:01.7698819Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:57:01.7699057Z               "line": 232
2026-06-15T13:57:01.7699210Z             },
2026-06-15T13:57:01.7699377Z             {
2026-06-15T13:57:01.7699645Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:57:01.7699820Z               "line": 246
2026-06-15T13:57:01.7699959Z             },
2026-06-15T13:57:01.7700115Z             {
2026-06-15T13:57:01.7700377Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:57:01.7700541Z               "line": 260
2026-06-15T13:57:01.7700798Z             },
2026-06-15T13:57:01.7700947Z             {
2026-06-15T13:57:01.7701216Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:57:01.7701390Z               "line": 274
2026-06-15T13:57:01.7701548Z             },
2026-06-15T13:57:01.7701709Z             {
2026-06-15T13:57:01.7701959Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:57:01.7702139Z               "line": 308
2026-06-15T13:57:01.7702292Z             },
2026-06-15T13:57:01.7702449Z             {
2026-06-15T13:57:01.7702702Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:57:01.7702864Z               "line": 911
2026-06-15T13:57:01.7703016Z             }
2026-06-15T13:57:01.7703170Z           ]
2026-06-15T13:57:01.7703336Z         }
2026-06-15T13:57:01.7703480Z       }
2026-06-15T13:57:01.7703640Z     },
2026-06-15T13:57:01.7703798Z     {
2026-06-15T13:57:01.7703971Z       "id": "REQ-UPD-6",
2026-06-15T13:57:01.7706061Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-15T13:57:01.7706241Z       "requiredStages": [
2026-06-15T13:57:01.7706408Z         "doc",
2026-06-15T13:57:01.7706573Z         "impl",
2026-06-15T13:57:01.7706722Z         "unit",
2026-06-15T13:57:01.7706878Z         "int"
2026-06-15T13:57:01.7707037Z       ],
2026-06-15T13:57:01.7707198Z       "stages": {
2026-06-15T13:57:01.7707352Z         "doc": {
2026-06-15T13:57:01.7707522Z           "complete": true,
2026-06-15T13:57:01.7707685Z           "evidence": [
2026-06-15T13:57:01.7707847Z             {
2026-06-15T13:57:01.7708091Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T13:57:01.7708244Z               "line": 3
2026-06-15T13:57:01.7708409Z             },
2026-06-15T13:57:01.7708554Z             {
2026-06-15T13:57:01.7708747Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-15T13:57:01.7708919Z               "line": 3
2026-06-15T13:57:01.7709145Z             },
2026-06-15T13:57:01.7709318Z             {
2026-06-15T13:57:01.7709617Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-15T13:57:01.7709784Z               "line": 3
2026-06-15T13:57:01.7709937Z             }
2026-06-15T13:57:01.7710094Z           ]
2026-06-15T13:57:01.7710238Z         },
2026-06-15T13:57:01.7710399Z         "impl": {
2026-06-15T13:57:01.7710562Z           "complete": true,
2026-06-15T13:57:01.7710723Z           "evidence": [
2026-06-15T13:57:01.7710877Z             {
2026-06-15T13:57:01.7711120Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.7711281Z               "line": 76
2026-06-15T13:57:01.7711440Z             },
2026-06-15T13:57:01.7711595Z             {
2026-06-15T13:57:01.7711847Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.7712012Z               "line": 212
2026-06-15T13:57:01.7712170Z             },
2026-06-15T13:57:01.7712322Z             {
2026-06-15T13:57:01.7712570Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.7712738Z               "line": 69
2026-06-15T13:57:01.7712894Z             },
2026-06-15T13:57:01.7713053Z             {
2026-06-15T13:57:01.7713295Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.7713596Z               "line": 133
2026-06-15T13:57:01.7713744Z             },
2026-06-15T13:57:01.7713910Z             {
2026-06-15T13:57:01.7714158Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.7714319Z               "line": 243
2026-06-15T13:57:01.7714465Z             },
2026-06-15T13:57:01.7714613Z             {
2026-06-15T13:57:01.7714860Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.7715018Z               "line": 406
2026-06-15T13:57:01.7715266Z             },
2026-06-15T13:57:01.7715419Z             {
2026-06-15T13:57:01.7715657Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.7715862Z               "line": 534
2026-06-15T13:57:01.7716019Z             },
2026-06-15T13:57:01.7716181Z             {
2026-06-15T13:57:01.7716439Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.7716611Z               "line": 548
2026-06-15T13:57:01.7716782Z             },
2026-06-15T13:57:01.7716931Z             {
2026-06-15T13:57:01.7717176Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.7717344Z               "line": 603
2026-06-15T13:57:01.7717496Z             },
2026-06-15T13:57:01.7717654Z             {
2026-06-15T13:57:01.7717898Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.7718063Z               "line": 634
2026-06-15T13:57:01.7718217Z             },
2026-06-15T13:57:01.7718364Z             {
2026-06-15T13:57:01.7718626Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T13:57:01.7718800Z               "line": 137
2026-06-15T13:57:01.7719027Z             },
2026-06-15T13:57:01.7719171Z             {
2026-06-15T13:57:01.7719431Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T13:57:01.7719591Z               "line": 184
2026-06-15T13:57:01.7719744Z             },
2026-06-15T13:57:01.7719896Z             {
2026-06-15T13:57:01.7720145Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7720306Z               "line": 78
2026-06-15T13:57:01.7720469Z             },
2026-06-15T13:57:01.7720630Z             {
2026-06-15T13:57:01.7720869Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7721032Z               "line": 114
2026-06-15T13:57:01.7721189Z             },
2026-06-15T13:57:01.7721347Z             {
2026-06-15T13:57:01.7721593Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7721761Z               "line": 185
2026-06-15T13:57:01.7721928Z             },
2026-06-15T13:57:01.7722086Z             {
2026-06-15T13:57:01.7722327Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7722482Z               "line": 260
2026-06-15T13:57:01.7722640Z             },
2026-06-15T13:57:01.7722802Z             {
2026-06-15T13:57:01.7723031Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7723206Z               "line": 292
2026-06-15T13:57:01.7723364Z             },
2026-06-15T13:57:01.7723516Z             {
2026-06-15T13:57:01.7723741Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7723909Z               "line": 323
2026-06-15T13:57:01.7724064Z             },
2026-06-15T13:57:01.7724209Z             {
2026-06-15T13:57:01.7724451Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7724615Z               "line": 346
2026-06-15T13:57:01.7724775Z             },
2026-06-15T13:57:01.7724932Z             {
2026-06-15T13:57:01.7725163Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7725331Z               "line": 388
2026-06-15T13:57:01.7725473Z             },
2026-06-15T13:57:01.7725631Z             {
2026-06-15T13:57:01.7725856Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7726026Z               "line": 398
2026-06-15T13:57:01.7726180Z             },
2026-06-15T13:57:01.7726451Z             {
2026-06-15T13:57:01.7726684Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7726848Z               "line": 410
2026-06-15T13:57:01.7726994Z             },
2026-06-15T13:57:01.7727148Z             {
2026-06-15T13:57:01.7727371Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7727538Z               "line": 420
2026-06-15T13:57:01.7727693Z             },
2026-06-15T13:57:01.7727862Z             {
2026-06-15T13:57:01.7728085Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7728247Z               "line": 439
2026-06-15T13:57:01.7728510Z             },
2026-06-15T13:57:01.7728667Z             {
2026-06-15T13:57:01.7728891Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7729134Z               "line": 449
2026-06-15T13:57:01.7729301Z             },
2026-06-15T13:57:01.7729449Z             {
2026-06-15T13:57:01.7729679Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7729844Z               "line": 94
2026-06-15T13:57:01.7730001Z             },
2026-06-15T13:57:01.7730151Z             {
2026-06-15T13:57:01.7730376Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7730546Z               "line": 120
2026-06-15T13:57:01.7730696Z             },
2026-06-15T13:57:01.7730852Z             {
2026-06-15T13:57:01.7731072Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7731229Z               "line": 135
2026-06-15T13:57:01.7731387Z             },
2026-06-15T13:57:01.7731548Z             {
2026-06-15T13:57:01.7731772Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7731936Z               "line": 162
2026-06-15T13:57:01.7732097Z             },
2026-06-15T13:57:01.7732251Z             {
2026-06-15T13:57:01.7732473Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7732641Z               "line": 174
2026-06-15T13:57:01.7732796Z             },
2026-06-15T13:57:01.7732958Z             {
2026-06-15T13:57:01.7733190Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7733357Z               "line": 185
2026-06-15T13:57:01.7733515Z             },
2026-06-15T13:57:01.7733672Z             {
2026-06-15T13:57:01.7733897Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7734057Z               "line": 451
2026-06-15T13:57:01.7734221Z             },
2026-06-15T13:57:01.7734372Z             {
2026-06-15T13:57:01.7734601Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7734774Z               "line": 555
2026-06-15T13:57:01.7734935Z             },
2026-06-15T13:57:01.7735094Z             {
2026-06-15T13:57:01.7735325Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:57:01.7735492Z               "line": 171
2026-06-15T13:57:01.7735637Z             },
2026-06-15T13:57:01.7735795Z             {
2026-06-15T13:57:01.7736023Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T13:57:01.7736191Z               "line": 65
2026-06-15T13:57:01.7736352Z             },
2026-06-15T13:57:01.7736505Z             {
2026-06-15T13:57:01.7736740Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T13:57:01.7736901Z               "line": 71
2026-06-15T13:57:01.7737050Z             },
2026-06-15T13:57:01.7737207Z             {
2026-06-15T13:57:01.7737431Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T13:57:01.7737593Z               "line": 77
2026-06-15T13:57:01.7737746Z             },
2026-06-15T13:57:01.7737893Z             {
2026-06-15T13:57:01.7738103Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.7738273Z               "line": 778
2026-06-15T13:57:01.7738432Z             },
2026-06-15T13:57:01.7738583Z             {
2026-06-15T13:57:01.7738793Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.7739041Z               "line": 795
2026-06-15T13:57:01.7739198Z             },
2026-06-15T13:57:01.7739489Z             {
2026-06-15T13:57:01.7739699Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.7739856Z               "line": 838
2026-06-15T13:57:01.7740014Z             },
2026-06-15T13:57:01.7740166Z             {
2026-06-15T13:57:01.7740366Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.7740532Z               "line": 981
2026-06-15T13:57:01.7740683Z             },
2026-06-15T13:57:01.7740840Z             {
2026-06-15T13:57:01.7741045Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.7741208Z               "line": 1131
2026-06-15T13:57:01.7741459Z             }
2026-06-15T13:57:01.7741618Z           ]
2026-06-15T13:57:01.7741779Z         },
2026-06-15T13:57:01.7741932Z         "int": {
2026-06-15T13:57:01.7742118Z           "complete": true,
2026-06-15T13:57:01.7742285Z           "evidence": [
2026-06-15T13:57:01.7742433Z             {
2026-06-15T13:57:01.7742690Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T13:57:01.7742858Z               "line": 569
2026-06-15T13:57:01.7743019Z             },
2026-06-15T13:57:01.7743173Z             {
2026-06-15T13:57:01.7743390Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T13:57:01.7743551Z               "line": 135
2026-06-15T13:57:01.7743697Z             }
2026-06-15T13:57:01.7743856Z           ]
2026-06-15T13:57:01.7744007Z         },
2026-06-15T13:57:01.7744166Z         "unit": {
2026-06-15T13:57:01.7744336Z           "complete": true,
2026-06-15T13:57:01.7744499Z           "evidence": [
2026-06-15T13:57:01.7744661Z             {
2026-06-15T13:57:01.7744904Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.7745067Z               "line": 624
2026-06-15T13:57:01.7745219Z             },
2026-06-15T13:57:01.7745382Z             {
2026-06-15T13:57:01.7745620Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.7745787Z               "line": 673
2026-06-15T13:57:01.7745947Z             },
2026-06-15T13:57:01.7746104Z             {
2026-06-15T13:57:01.7746341Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:57:01.7746503Z               "line": 696
2026-06-15T13:57:01.7746656Z             },
2026-06-15T13:57:01.7746808Z             {
2026-06-15T13:57:01.7747038Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7747203Z               "line": 513
2026-06-15T13:57:01.7747352Z             },
2026-06-15T13:57:01.7747509Z             {
2026-06-15T13:57:01.7751620Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7751835Z               "line": 638
2026-06-15T13:57:01.7751996Z             },
2026-06-15T13:57:01.7752154Z             {
2026-06-15T13:57:01.7752398Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7752568Z               "line": 675
2026-06-15T13:57:01.7752717Z             },
2026-06-15T13:57:01.7752874Z             {
2026-06-15T13:57:01.7753122Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7753288Z               "line": 894
2026-06-15T13:57:01.7753446Z             },
2026-06-15T13:57:01.7753594Z             {
2026-06-15T13:57:01.7753822Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7753983Z               "line": 916
2026-06-15T13:57:01.7754134Z             },
2026-06-15T13:57:01.7754291Z             {
2026-06-15T13:57:01.7754525Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7754688Z               "line": 933
2026-06-15T13:57:01.7754844Z             },
2026-06-15T13:57:01.7755002Z             {
2026-06-15T13:57:01.7755231Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7755393Z               "line": 948
2026-06-15T13:57:01.7755555Z             },
2026-06-15T13:57:01.7755707Z             {
2026-06-15T13:57:01.7755923Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7756093Z               "line": 974
2026-06-15T13:57:01.7756243Z             },
2026-06-15T13:57:01.7756617Z             {
2026-06-15T13:57:01.7756848Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:57:01.7757007Z               "line": 457
2026-06-15T13:57:01.7757163Z             },
2026-06-15T13:57:01.7757306Z             {
2026-06-15T13:57:01.7757560Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T13:57:01.7757721Z               "line": 338
2026-06-15T13:57:01.7757869Z             },
2026-06-15T13:57:01.7758022Z             {
2026-06-15T13:57:01.7758218Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7758509Z               "line": 8946
2026-06-15T13:57:01.7758666Z             },
2026-06-15T13:57:01.7758848Z             {
2026-06-15T13:57:01.7759133Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.7759303Z               "line": 1260
2026-06-15T13:57:01.7759485Z             },
2026-06-15T13:57:01.7759646Z             {
2026-06-15T13:57:01.7759866Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T13:57:01.7760023Z               "line": 130
2026-06-15T13:57:01.7760185Z             }
2026-06-15T13:57:01.7760338Z           ]
2026-06-15T13:57:01.7760505Z         }
2026-06-15T13:57:01.7760648Z       }
2026-06-15T13:57:01.7760810Z     },
2026-06-15T13:57:01.7760962Z     {
2026-06-15T13:57:01.7761125Z       "id": "REQ-UPD-7",
2026-06-15T13:57:01.7765515Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-15T13:57:01.7765709Z       "requiredStages": [
2026-06-15T13:57:01.7765873Z         "impl",
2026-06-15T13:57:01.7766039Z         "unit"
2026-06-15T13:57:01.7766183Z       ],
2026-06-15T13:57:01.7766348Z       "stages": {
2026-06-15T13:57:01.7766498Z         "doc": {
2026-06-15T13:57:01.7766678Z           "complete": false,
2026-06-15T13:57:01.7766859Z           "evidence": []
2026-06-15T13:57:01.7767005Z         },
2026-06-15T13:57:01.7767172Z         "impl": {
2026-06-15T13:57:01.7767336Z           "complete": true,
2026-06-15T13:57:01.7767510Z           "evidence": [
2026-06-15T13:57:01.7767661Z             {
2026-06-15T13:57:01.7767871Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7768038Z               "line": 2284
2026-06-15T13:57:01.7768196Z             }
2026-06-15T13:57:01.7768353Z           ]
2026-06-15T13:57:01.7768501Z         },
2026-06-15T13:57:01.7768667Z         "int": {
2026-06-15T13:57:01.7768834Z           "complete": false,
2026-06-15T13:57:01.7769093Z           "evidence": []
2026-06-15T13:57:01.7769268Z         },
2026-06-15T13:57:01.7769422Z         "unit": {
2026-06-15T13:57:01.7769592Z           "complete": true,
2026-06-15T13:57:01.7769760Z           "evidence": [
2026-06-15T13:57:01.7769920Z             {
2026-06-15T13:57:01.7770117Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7770273Z               "line": 8922
2026-06-15T13:57:01.7770436Z             }
2026-06-15T13:57:01.7770592Z           ]
2026-06-15T13:57:01.7770750Z         }
2026-06-15T13:57:01.7770903Z       }
2026-06-15T13:57:01.7771065Z     },
2026-06-15T13:57:01.7771212Z     {
2026-06-15T13:57:01.7771380Z       "id": "REQ-UPD-8",
2026-06-15T13:57:01.7776236Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-15T13:57:01.7776623Z       "requiredStages": [
2026-06-15T13:57:01.7776785Z         "impl",
2026-06-15T13:57:01.7776947Z         "unit"
2026-06-15T13:57:01.7777124Z       ],
2026-06-15T13:57:01.7777276Z       "stages": {
2026-06-15T13:57:01.7777434Z         "doc": {
2026-06-15T13:57:01.7777603Z           "complete": false,
2026-06-15T13:57:01.7777770Z           "evidence": []
2026-06-15T13:57:01.7777925Z         },
2026-06-15T13:57:01.7778094Z         "impl": {
2026-06-15T13:57:01.7778254Z           "complete": true,
2026-06-15T13:57:01.7778422Z           "evidence": [
2026-06-15T13:57:01.7778564Z             {
2026-06-15T13:57:01.7778813Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.7779051Z               "line": 77
2026-06-15T13:57:01.7779198Z             },
2026-06-15T13:57:01.7779366Z             {
2026-06-15T13:57:01.7779601Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7779766Z               "line": 49
2026-06-15T13:57:01.7779915Z             },
2026-06-15T13:57:01.7780081Z             {
2026-06-15T13:57:01.7780306Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7780466Z               "line": 152
2026-06-15T13:57:01.7780625Z             },
2026-06-15T13:57:01.7780775Z             {
2026-06-15T13:57:01.7781001Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7781162Z               "line": 215
2026-06-15T13:57:01.7781320Z             },
2026-06-15T13:57:01.7781477Z             {
2026-06-15T13:57:01.7781701Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7781859Z               "line": 230
2026-06-15T13:57:01.7782007Z             },
2026-06-15T13:57:01.7782160Z             {
2026-06-15T13:57:01.7782373Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7782537Z               "line": 247
2026-06-15T13:57:01.7782692Z             },
2026-06-15T13:57:01.7782844Z             {
2026-06-15T13:57:01.7783075Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7783244Z               "line": 269
2026-06-15T13:57:01.7783400Z             },
2026-06-15T13:57:01.7783543Z             {
2026-06-15T13:57:01.7783773Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7783944Z               "line": 66
2026-06-15T13:57:01.7784087Z             },
2026-06-15T13:57:01.7784244Z             {
2026-06-15T13:57:01.7784469Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:57:01.7784635Z               "line": 154
2026-06-15T13:57:01.7784784Z             },
2026-06-15T13:57:01.7784935Z             {
2026-06-15T13:57:01.7785141Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7785303Z               "line": 2168
2026-06-15T13:57:01.7785465Z             },
2026-06-15T13:57:01.7785616Z             {
2026-06-15T13:57:01.7785815Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7785972Z               "line": 2231
2026-06-15T13:57:01.7786121Z             },
2026-06-15T13:57:01.7786276Z             {
2026-06-15T13:57:01.7786473Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7786640Z               "line": 2241
2026-06-15T13:57:01.7786797Z             },
2026-06-15T13:57:01.7786959Z             {
2026-06-15T13:57:01.7787168Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7787332Z               "line": 2248
2026-06-15T13:57:01.7787488Z             },
2026-06-15T13:57:01.7787750Z             {
2026-06-15T13:57:01.7787938Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7788093Z               "line": 2285
2026-06-15T13:57:01.7788255Z             },
2026-06-15T13:57:01.7788414Z             {
2026-06-15T13:57:01.7788610Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.7788777Z               "line": 480
2026-06-15T13:57:01.7788925Z             },
2026-06-15T13:57:01.7789148Z             {
2026-06-15T13:57:01.7789363Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:57:01.7789522Z               "line": 494
2026-06-15T13:57:01.7789783Z             }
2026-06-15T13:57:01.7789931Z           ]
2026-06-15T13:57:01.7790083Z         },
2026-06-15T13:57:01.7790236Z         "int": {
2026-06-15T13:57:01.7790412Z           "complete": false,
2026-06-15T13:57:01.7790574Z           "evidence": []
2026-06-15T13:57:01.7790727Z         },
2026-06-15T13:57:01.7790875Z         "unit": {
2026-06-15T13:57:01.7791045Z           "complete": true,
2026-06-15T13:57:01.7791223Z           "evidence": [
2026-06-15T13:57:01.7791374Z             {
2026-06-15T13:57:01.7791608Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:57:01.7791771Z               "line": 476
2026-06-15T13:57:01.7791932Z             },
2026-06-15T13:57:01.7792096Z             {
2026-06-15T13:57:01.7792313Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:57:01.7792481Z               "line": 580
2026-06-15T13:57:01.7792624Z             },
2026-06-15T13:57:01.7792786Z             {
2026-06-15T13:57:01.7792977Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7793139Z               "line": 8924
2026-06-15T13:57:01.7793281Z             },
2026-06-15T13:57:01.7793433Z             {
2026-06-15T13:57:01.7793621Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7793780Z               "line": 8946
2026-06-15T13:57:01.7793936Z             }
2026-06-15T13:57:01.7794090Z           ]
2026-06-15T13:57:01.7794246Z         }
2026-06-15T13:57:01.7794409Z       }
2026-06-15T13:57:01.7794556Z     },
2026-06-15T13:57:01.7794709Z     {
2026-06-15T13:57:01.7794875Z       "id": "REQ-WHOAMI-1",
2026-06-15T13:57:01.7797934Z       "title": "`spt whoami` is a thin ALIAS for `spt endpoint list` (full output: the SELF pin + the subnet roster) — the standalone bare-id command is dropped (the `id=$(spt whoami)` capture was never a real pattern: env vars don't persist between agent tool calls). The one new render: the `endpoint list` SELF pin carries the Self endpoint's authored `endpoint description` (info::read_info(...).resources) when present, inline after the liveness state. whoami stays a top-level hot-path verb (parse unchanged, REQ-MSG-9).",
2026-06-15T13:57:01.7798120Z       "requiredStages": [
2026-06-15T13:57:01.7798277Z         "doc",
2026-06-15T13:57:01.7798430Z         "impl",
2026-06-15T13:57:01.7798592Z         "unit"
2026-06-15T13:57:01.7798742Z       ],
2026-06-15T13:57:01.7798909Z       "stages": {
2026-06-15T13:57:01.7799137Z         "doc": {
2026-06-15T13:57:01.7799308Z           "complete": true,
2026-06-15T13:57:01.7799472Z           "evidence": [
2026-06-15T13:57:01.7799637Z             {
2026-06-15T13:57:01.7799805Z               "path": "CONTEXT.md",
2026-06-15T13:57:01.7799966Z               "line": 651
2026-06-15T13:57:01.7800125Z             }
2026-06-15T13:57:01.7800266Z           ]
2026-06-15T13:57:01.7800425Z         },
2026-06-15T13:57:01.7800581Z         "impl": {
2026-06-15T13:57:01.7800745Z           "complete": true,
2026-06-15T13:57:01.7800910Z           "evidence": [
2026-06-15T13:57:01.7801074Z             {
2026-06-15T13:57:01.7801263Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7801431Z               "line": 2768
2026-06-15T13:57:01.7801591Z             },
2026-06-15T13:57:01.7801745Z             {
2026-06-15T13:57:01.7801939Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7802097Z               "line": 2780
2026-06-15T13:57:01.7802258Z             }
2026-06-15T13:57:01.7802526Z           ]
2026-06-15T13:57:01.7802675Z         },
2026-06-15T13:57:01.7802835Z         "int": {
2026-06-15T13:57:01.7803003Z           "complete": false,
2026-06-15T13:57:01.7803174Z           "evidence": []
2026-06-15T13:57:01.7803328Z         },
2026-06-15T13:57:01.7803484Z         "unit": {
2026-06-15T13:57:01.7803652Z           "complete": true,
2026-06-15T13:57:01.7803807Z           "evidence": [
2026-06-15T13:57:01.7803969Z             {
2026-06-15T13:57:01.7804167Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7804444Z               "line": 6451
2026-06-15T13:57:01.7804592Z             },
2026-06-15T13:57:01.7804749Z             {
2026-06-15T13:57:01.7804931Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:57:01.7805092Z               "line": 6467
2026-06-15T13:57:01.7805241Z             }
2026-06-15T13:57:01.7805393Z           ]
2026-06-15T13:57:01.7805546Z         }
2026-06-15T13:57:01.7805689Z       }
2026-06-15T13:57:01.7805857Z     }
2026-06-15T13:57:01.7806008Z   ],
2026-06-15T13:57:01.7806172Z   "findings": []
2026-06-15T13:57:01.7806332Z }
